文章分两块,js调用andorid代码,android代码调用js
前提 打开js交互 webview.getSetting().setJavaScriptEnable(true);
一:android调用js代码
说明:主要有两种方式,
方式1: 4.4系统以前
//需要另外开启线程
mWebView.post(new Runnable() {
// @Override
public void run() {
// 调用javascript的callJS()方法 ,,用于4.4以下,缺点:该方法会使页面再次刷新,且无法获取返回值
mWebView.loadUrl("javascript:callJS()");
}
});
方式2: 4.4系统以上
//4.4以上可用,优点:不会使页面再次刷新,且可以获取返回值
mWebView.evaluateJavascript("javascript:callJS()", new ValueCallback() {
@Override
public void onReceiveValue(String value) {
//此处为 js 返回的结果
}
});
综合使用:
if(Build.VERSION.SDK_INT<19){
mWebView.post(new Runnable() {
// @Override
public void run() {
// 调用javascript的callJS()方法 ,,用于4.4以下,缺点:该方法会使页面再次刷新,且无法获取返回值
mWebView.loadUrl("javascript:callJS()");
}
});
}else{
//4.4以上可用,优点:不会使页面再次刷新,且可以获取返回值
mWebView.evaluateJavascript("javascript:callJS()", new ValueCallback() {
@Override
public void onReceiveValue(String value) {
//此处为 js 返回的结果
}
});
}
二,js调用android代码
一: 通过addJavascriptInterface 接口
通过webView.addJavascriptInterface(new JsObject(), "injectedObject");接口<