1. js调用Android
- 定义给js调用的接口
package com.xunku.weixiaobao.me.common;
import android.content.Context;
import android.util.Log;
import android.webkit.JavascriptInterface;
public class JavaScriptinterface {
Context context;
public JavaScriptinterface(Context c) {
context= c;
}
@JavascriptInterface
public void HtmlcallJava(String jsonString) {
Log.i("sinstar", "showToast: "+jsonString);
}
}
2.将这个 接口 传递给webview 的html页面
WebSettings webSettings = wvCourseContent.getSettings();
webSettings.setJavaScriptEnabled(true);
wvCourseContent.addJavascriptInterface(new JavaScriptinterface(this),"jsObj");
webSettings.setAllowFileAccess(true);
webSettings.setBuiltInZoomControls(true);
wvCourseContent.loadUrl(url);
wvCourseContent.setWebViewClient(new webViewClient ());
private class webViewClient extends WebViewClient {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}
- js 调用这个接口
<script type="text/javascript" language="javascript">
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1;
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);
if(isAndroid){
window.jsObj.HtmlcallJava('{"transStatus":"01","orderNo":"20170309174643528038477","msg":"付款æˆåŠŸ"}');
}else{
window.webkit.messageHandlers.showMobile.postMessage('{"transStatus":"01","orderNo":"20170309174643528038477","msg":"付款æˆåŠŸ"}');
}
</script>