2015-10-07 88 views
0

在WebView中测试一个url意识到它需要大约6〜8秒的加载时间。与iOS相比,WebView只需要2秒钟。这两款设备都在同一个WiFi网络上。我在WebView中使用以下设置。WebView缓慢加载url

//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); 
     } 

    } 

谁删除了用于去除装载机对话框,并赢了下来2个secounds(4〜5)装载WebViewClient陌生人。如何提高WebView加载时间,此URL是一个移动商务,包含图像和JavaScript。这个问题主要发生在第一次充电时(即恶化),即离开活动并返回最佳时间短(3〜4秒)。

回答

0

问题是这条线。

webView.setWebViewClient(new WebViewClient()); 

奇怪的是添加一个客户端到web视图的加载时间增加。当我删除这行时间下降了2秒。

+0

一般我猜android web视图是该死的慢 –