webview和原生应用JS交互
定义关联的对象
public class Bridge2Js {
private Activity activity;
public Bridge2Js(Activity activity){
this.activity = activity;
}
@JavascriptInterface
public void startPage(int pageSign, String json){
activity....
}
@JavaInterface
public void clickOnAndroid(){
}
}
设置关联类
WebSettings mWebSettings = mProgressWebView.getSettings();
mProgressWebView.addJavascriptInterface(new Bridge2Js(this), "bridge");
在JS代码中调用Android代码
//button
<input type="button" value="click me" onclick="window.bridge.startPage(0,'asd')"/>
//标准html
<!DOCTYPE html>
<html>
<script language="javascript">
/在Android代码中可以调用下面js函数/
function wave() {
alert("1");
document.getElementById("droid").src="android_waving.png";
alert("2");
}
</script>
<body>
<a onClick="window.bridge.clickOnAndroid()">Click me!</a>
</body>
</html>
在Android中调用JS代码
webview.loadUrl("javascript:wave()");