【问题标题】:WebView slow loading urlWebView 慢加载 url
【发布时间】:2015-10-07 01:18:46
【问题描述】:

在 WebView 中测试一个 url 需要大约 6 ~ 8 秒来加载。与 iOS 相比,WebView 只需 2 秒。两台设备都在同一个wifi网络上。我在 WebView 中使用以下设置。

//Manifest
//android:hardwareAccelerated="true"

webView = (WebView) findViewById(R.id.wvProduct);

            final WebSettings settings = webView.getSettings();

            settings.setJavaScriptEnabled(true);
            settings.setAppCacheEnabled(true);
            settings.setDomStorageEnabled(true);
            settings.setLoadsImagesAutomatically(true);
            settings.setDatabaseEnabled(true);
            settings.setRenderPriority(WebSettings.RenderPriority.HIGH);
            settings.setCacheMode(WebSettings.LOAD_NO_CACHE);

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
            }

            //webView.setWebViewClient(new MyWebClient());
            webView.loadUrl(url);

if (Build.VERSION.SDK_INT >= 19) {

            webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

        } else {

            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

                webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

            }

        }

public class MyWebClient extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view,
                                                String urlNewString) {
            view.loadUrl(urlNewString);
            return true;
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public void onPageFinished(WebView view, String url) {

            if(LoadingDialog.instanceProgressDialog().isShowing()) {
                LoadingDialog.dismissDialog();
            }
        }

        @Override
        public void onReceivedError(WebView view, int errorCode,
                                    String description, String failingUrl) {
            super.onReceivedError(view, errorCode, description, failingUrl);

            if(LoadingDialog.instanceProgressDialog() != null) {

                if (LoadingDialog.instanceProgressDialog().isShowing()) {

                    LoadingDialog.dismissDialog();

                }

            }

            Log.e(Constants.ERROR,
                    "****Error: " + description + " code: " + errorCode);
        }

    }

移除用于移除加载器对话框的 WebViewClient 并赢得 2 秒 (4~5) 加载的陌生人。我怎样才能提高 WebView 加载时间,这个 url 是一个移动商务,包含图像和 javascript。这个问题主要发生在第一次充电(即恶化),即离开活动并返回最好的东西时间短(3~4秒)。

【问题讨论】:

    标签: android html ios webview


    【解决方案1】:

    问题出在这一行。

    webView.setWebViewClient(new WebViewClient());
    

    奇怪地添加一个客户端到webview 加载时间增加了。当我删除这条线时,时间下降了 2 秒。

    【讨论】:

    • 总的来说,我猜安卓网页视图太慢了
    猜你喜欢
    • 2018-04-05
    • 1970-01-01
    • 2012-09-26
    • 2021-07-03
    • 1970-01-01
    • 2013-04-18
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多