Android WebView的使用集錦(支援Html5)
阿新 • • 發佈:2019-01-28
WebView配置:
WebSettings webSettings = webView.getSettings();
// 支援javascript
webSettings.setJavaScriptEnabled(true);
// 支援使用localStorage(H5頁面的支援)
webSettings.setDomStorageEnabled(true);
// 支援資料庫
webSettings.setDatabaseEnabled(true);
// 支援快取
webSettings.setAppCacheEnabled(true);
String appCaceDir = this.getApplicationContext().getDir("cache" , Context.MODE_PRIVATE).getPath();
webSettings.setAppCachePath(appCaceDir);
// 設定可以支援縮放
webSettings.setUseWideViewPort(true);
// 擴大比例的縮放
webSettings.setSupportZoom(true);
webSettings.setBuiltInZoomControls(true);
// 隱藏縮放按鈕
webSettings.setDisplayZoomControls(false);
// 自適應螢幕
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webSettings.setLoadWithOverviewMode(true );
// 隱藏滾動條
webView.setHorizontalScrollBarEnabled(false);
webView.setVerticalScrollBarEnabled(false);
// 進度顯示及隱藏
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
if (newProgress >= 99) {
pv.setVisibility(View.INVISIBLE);
} else {
pv.setVisibility(View.VISIBLE);
}
}
});
// 處理網頁內的連線(自身開啟)
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
});
webView.loadUrl(Cons.Url.ROOT);
// 使用返回鍵的方式防止網頁重定向
webView.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
if (keyCode == KeyEvent.KEYCODE_BACK && webView.canGoBack()) {
webView.goBack();
return true;
}
}
return false;
}
});
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
防止橫豎屏切換WebView重新初始化:
AndroidManifest.xml中,使用到WebView的Activity中新增:
android:configChanges="orientation|keyboardHidden|screenSize"
- 1
- 2
- 1
- 2
在Activity中覆蓋父類的這個方法:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
}
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4