1、Android嵌入H5,并添加对js的支持
1)首先获取WebView对象实例,或去之后将页面加载到该实例中
WebView webView = findViewById(R.id.webView_h5);//获取android页面中的中的webView
webView.loadUrl("http://127.0.0.1/asset/pages/forAndroidAndH5.html");//嵌入H5页面
2)添加js支持
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);//打开js支持
3)加入辅助处理js,不然有一些js的函数会失效,比如alert()
方法
webView.setWebChromeClient(new WebChromeClient(){
public boolean onJsAlert(WebView view, String url, String message, JsResult result){
return super.onJsAlert(view, url, message, result);
}
});
4)加入缓存清楚机制,不然H5页面有变动,不能及时在app端显示出来
webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
至此,android内嵌H5的工作已经完成,接下来将是android端调用H5的js函数
2、android调用H5的js函数
1)调用无参/有参,但无返回值的js函数
webView.loadUrl("JavaScript:androidtoh5Withparam('" + msg + "')");
如果参数是字符串,则需要'
单引号,如果传递的是数值,则不需要,如果没有参数,支保留一个()
即可
2)调用无参/有参,且有返回值的js函数
int arg1 = 10;
int arg2 = 12;
String methodH5 = "androidtoh5WithResult(" + arg1 + "," + arg2 + ")";
webView.evaluateJavascript(methodH5, new ValueCallback() {
@Override
public void onReceiveValue(String s) {
System.out.println("=====s:" + s);
}
});
传参形式和==1)==中提到的一样
对应的H5中的js函数为
function androidtoh5WithResult(arg1, arg2) {
return arg1 + arg2;
}
至此,Android内嵌H5(1)的内容已经完成
Android内嵌H5(2)地址:https://blog.csdn.net/Dong_Da_JR/article/details/84337762