Android WebView与JS交互

最近项目需要用到html+js在安卓端展示,需要和js进行交互,下面是一些自己的心得

mWebView = new WebView(this);
		mWebView.getSettings().setJavaScriptEnabled(true);
		mWebView.loadUrl("file://mnt/sdcard/test.html");
		mWebView.addJavascriptInterface(new Object() {
			public void clickOnAndroid() {
				mHandler.post(new Runnable() {
					public void run() {
						getSpeak();
					}
				});
			}
		}, "speak");
		setContentView(mWebView);
需要注意的是

本地读取html文件路径以file://开头

speak要与onclick事件中相对应onClick="window.speak.clickOnAndroid()"

mWebView.loadUrl("javascript:ale('"+resultString+"')");

这个是回调html中的js方法

要注意一点的是调用js方法时参数外面要加单引号,否则js里获取不到参数

下面是html部分 很简单

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=gb2312">
<script language="javascript">
 
function ale(str){
	input=top.document.getElementsByName("t1");
    input[0].value=str;
	document.documentElement.style.backgroundColor="#00f"; 
}
</script>
</head>
<body>
<input type="text" name="t1"/>
 <button onClick="window.speak.clickOnAndroid()">语音输入</button>
</body>
</html>

你可能感兴趣的:(js,webView)