Android webview在加载时崩溃:空白,错误" net :: ERR_UNKNOWN_URL_SCHEME"

时间:2016-06-14 05:18:04

标签: android webview

从谷歌驱动器加载网址时(这是一个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());
    }
}

任何帮助将不胜感激!感谢。

0 个答案:

没有答案