我有一个 webview 我正在加载自定义 HTML 到使用loadDataWithBaseURL
:
mArticleWebView.loadDataWithBaseURL("http://www.example.com/", htmlString, "text/html", "utf-8", null);
这将适用于多个页面,然后在平板电脑上的 Jelly Bean 中似乎无缘无故地在 WebView 中停止触发事件,并且 Web 视图将是空白的。
这是WebViewCreation
代码:
private void prepareWebView() {
mArticleWebView.setBackgroundColor(getResources().getColor(R.color.white));
mArticleWebView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY);
mArticleWebView.addJavascriptInterface(new ArticleJavaScriptInterface(getActivity()), "Company");
mArticleWebView.setWebChromeClient(new CustomChromeClient());
/* WebViewClient must be set BEFORE calling loadUrl! */
mArticleWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favi) {
Log.e(TAG, "Signs of life, shock and awe.");
super.onPageStarted(view, url, favi);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.e(TAG, "onPageFinished..." + url);
super.onPageFinished(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null && (url.startsWith("http://") || url.startsWith(Constants.MEDIA_ENTRY_PROTOCOL + "://"))) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
} else {
return false;
}
}
});
WebSettings webSettings = mArticleWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
if (BuildConfig.DEBUG) {
Log.d(TAG, "User Agent is " + webSettings.getUserAgentString());
}
}
具体问题是onPageStarted
,其他覆盖会在一段时间后停止被调用。到达所有其他代码,生成的 HTML 看起来不错。
无效,重新加载,重新初始化似乎没有任何好处。它只是死了,然后一直死。
我还能尝试什么?还有什么可能导致问题?
- - - - - - 编辑 - - - - -
经过数小时的头部抨击,然后发现它也在寻呼机之外执行此操作,我 90% 确定我遇到了下面链接的问题。话虽如此,如果有人有任何建议,我还没有修复。
当方向改变和多线程正在运行时,导致所有 webview 停止加载的 AdView 错误?
----- 最终编辑 -------- 这从未得到“修复”,我们现在通过 HTML 加载广告,而不是为 Jelly Bean 本地加载广告。
它不是:
任何与ViewPager
. 插页式广告最终也会导致它。我们的大部分广告都在ViewPager
.
之间的冲突ActionBarSherlock
。更新到AppCompat
没有任何帮助。
只是WebView
. 中还发现了一些奇怪的行为XWalk
,包括尝试自行加载广告,然后出现闪烁、可怕的怪异现象,但稍等片刻XWalk
就会恢复。这是与ActionBarSherlock
和AppCompat
。
我的问题与轮换无关;我一般都在指责线程。我们确实有相当多的线程正在进行。
在 (6.21) 之前,我们有一个旧版本的Google Ads 。在我将手指指向导致问题的广告之前,我已更新到 Google Play 7,因为它是必需的。更新中没有行为变化。AKA:PublisherAdView
和 DfpAdView 的反应相同。
我想知道将项目移动到 Android Studio 时是否发生了什么事,但不知道该指向什么。
归根结底,这是一个操作系统问题,但我不知道是什么特别痒。我很想听到任何经历过同样事情的人的来信。