1、支持JS
使用WebView支持JS,代码比较简单,直接可以在代码中设置一句话,如下:
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDefaultTextEncodingName("utf-8") ;
JS的支持主要是实现如下方法:
public void addJavascriptInterface(Object obj, String interfaceName) {
}
要注意WebView的安全监测机制,需要在API版本17以上可以使用,加上标识:
@JavascriptInterface
2、 背景透明
WebView如果要设置背景透明,在高版本的应用中,需要设置硬件加速机制,代码如下:
//在高版本的Android系统中,需要关闭硬件加速才能让背景透明
if(android.os.Build.VERSION.SDK_INT >= 11){
mWebView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
}
3、WebView支持调试
Android提供了WebView在Chrome上的调试功能,需要首先设置手机为可以调试状态,同时在代码中设置自定义的WebView可以调试,代码如下:
// 设置webview为调试模式
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
WebView.setWebContentsDebuggingEnabled(true);
}
4、支持Alert弹窗
如果我们要支持Alert弹窗,需要实现WebChromeClient当中的一些方法,WebChromeClient中的一些重要方法如下:
- onCloseWindow(关闭WebView)
- onCreateWindow()
- onJsAlert (WebView上alert是弹不出来东西的,需要定制你的WebChromeClient处理弹出)
- onJsPrompt()
- onJsConfirm()
- onProgressChanged(进度显示)
- onReceivedIcon(网站图标)
- onReceivedTitle(网站标题)
支持Alert弹窗,主要是重写onJsAlert()
方法
5、支持错误页面
错误页面的监控主要在WebViewClient这个类完成,它主要是帮助WebView处理各种通知、请求事件的,具体来说包括:
- onLoadResource
- onPageStart
- onPageFinish
- onReceiveError //这个就是我们想要的方法
- onReceivedHttpAuthRequest
自定义404界面等信息,就可以通过重写onReceiveError()
完成!