提高 Android webview 中常用网页的加载速度
Increase loading speed of frequently used webpages in Android webview
我的 Android 应用程序中有一个 webview,它将仅显示 1 个特定网站的网页,我希望网页能够高效加载。那么有没有办法通过缓存等技术提高页面加载效率,使URL以最优化的方式加载。
有效加载网页的最简单方法是对其进行缓存。
您可以编写如下代码:
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"/>
我的 Android 应用程序中有一个 webview,它将仅显示 1 个特定网站的网页,我希望网页能够高效加载。那么有没有办法通过缓存等技术提高页面加载效率,使URL以最优化的方式加载。
有效加载网页的最简单方法是对其进行缓存。 您可以编写如下代码:
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"/>