我用桥接的方式实现的:
@SuppressLint("AddJavascriptInterface")
protected void initWebView() {
super.initWebView();
String ua = webView.getSettings().getUserAgentString();
webView.getSettings().setUserAgentString(ua + ";abc");
//关键代码
webView.addJavascriptInterface(new JSInvokeClass(), "Test");
}
JSInvokeClass名字是自定义的,随便起名
private final class JSInvokeClass {
@JavascriptInterface
public String getUserInfo() {
return "字符串";
}
}
js直接在按钮的点击事件里写"Test.getUserInfo()"就可以调用了
例如
<html>
<body>
<script>
function test(){
var data = Test.getUserInfo()
document.getElementById('content').innerHTML = data
}
</script>
<button id="testBtn" type="button" onClick="test()">getUserInfo</button>
<div id="content"/>
</body>
</html>
网友评论