您的位置:首页 > 移动开发

WebView支持JS、Alert以及进度监控等

2015-10-27 14:53 337 查看

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()
完成!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: