在Android webview

时间:2017-05-16 12:48:12

标签: android webview android-webview

我的Android应用程序中有一个webview,它只显示1个特定网站的网页,我希望有效地加载网页。那么有没有办法通过缓存或其他方法提高页面加载效率,以便尽可能以最优化的方式加载URL。

1 个答案:

答案 0 :(得分:0)

有效加载网页的最简单方法是缓存它。 您可以编写如下代码:

WebView webView = new WebView( context );
webView.getSettings().setAppCacheMaxSize( 5 * 1024 * 1024 ); // 5MB
webView.getSettings().setAppCachePath( getApplicationContext().getCacheDir().getAbsolutePath() );
webView.getSettings().setAllowFileAccess( true );
webView.getSettings().setAppCacheEnabled( true );
webView.getSettings().setJavaScriptEnabled( true );
webView.getSettings().setCacheMode( WebSettings.LOAD_DEFAULT ); 

//This part will load the web page if the network is not available.
    if (!isNetworkAvailable()) {
     webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK );
    }

    webView.loadUrl("http://www.google.com" );

方法isNetworkAvailable()检查活动网络连接:

private boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService( CONNECTIVITY_SERVICE );
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

最后,不要忘记将以下三个权限添加到AndroidManifest.xml中:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>