簡體   English   中英

WebView緩慢加載網址

[英]WebView slow loading url

要在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的加載時間,該網址是移動電子商務,包含圖片和JavaScript。 該問題主要發生在第一次充電中(惡化),即偏離活動並返回最佳狀態的時間很短(3〜4秒)。

問題是這條線。

webView.setWebViewClient(new WebViewClient());

奇怪地將客戶端添加到Webview的加載時間增加了。 當我刪除該行時,時間下降了2秒。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM