从谷歌驱动器加载网址时(这是一个27页的pdf),加载"关于:空白"时,网页视图会崩溃。错误" net :: ERR_UNKNOWN_URL_SCHEME"。当从谷歌驱动器加载幻灯片时,也会发生这种情况,但是一个崩溃的网址以" chrome-extension"开头。我们已经研究了许多内容,例如在网站中的shouldOverrideUrlLoading函数中检查这些网址并返回true并从webview中删除我们的自定义用户代理,但这些似乎都不起作用。
由于想法不足,我们决定看看在崩溃时重新加载网页是否会有所帮助,而且大部分时间都是如此。我附上了我们正在创建的webview的一些代码片段。
wv = (WebView)result.findViewById(R.id.map_holder);
try
{
wv.setInitialScale(50);
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setSupportZoom(true);
wv.getSettings().setUseWideViewPort(true);
wv.getSettings().setBuiltInZoomControls(true);
wv.setWebViewClient(new WebViewClient()
{
@Override
public void onPageStarted (WebView view, String url, Bitmap favicon)
{
super.onPageStarted(view, url, favicon);
loadingSpinner.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished (WebView view, String url)
{
super.onPageFinished(view, url);
loadingSpinner.setVisibility(View.GONE);
}
@Override
public void onReceivedError (WebView view, WebResourceRequest request, WebResourceError error)
{
view.loadData(C.ErrorHtml, "text/html", null);
if(attempts < maxAttempts)
{
attempts++;
view.loadUrl(webAddress);
}
}
@SuppressWarnings ("deprecation")
@Override
public void onReceivedError (WebView view, int errorCode, String description, String failingUrl)
{
view.loadData(C.ErrorHtml, "text/html", null);
if(attempts < maxAttempts)
{
attempts++;
view.loadUrl(webAddress);
}
}
@Override
public boolean shouldOverrideUrlLoading (WebView view, String url)
{
return overrideUrl(url) || super.shouldOverrideUrlLoading(view, url);
}
});
wv.getSettings().setDomStorageEnabled(true);
wv.getSettings().setDatabaseEnabled(true);
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
wv.getSettings().setDatabasePath("/data/data/" + wv.getContext().getPackageName() + "/databases/");
}
wv.loadUrl(webAddress);
}
catch(Exception e)
{
Log.i(TAG, e.toString());
}
}
任何帮助将不胜感激!感谢。