1、H5页面调用安卓Native界面
1)通过给webView添加JsInterface,安卓提供接口,让H5来进行调用
a)安卓写一个类,里面的方法需要用通过注解来表明是java接口的方法。
eg:
privateclassWebInterface {
@JavascriptInterfacepublicvoidcallFromJSBasicDataType(intx,floaty,charc,booleanresult) {
String str = "-" + (x + 1) + "-" + (y + 1) + "-" + c + "-" + result;
Log.e("tttt", "tttttt"+str);
}
@JavascriptInterfacepublicvoidcallAndroidMethod() {
Log.e("tttt", "tttttt2");
}
}
b)设置webView可以支持js
eg:
webView.getSettings().setJavaScriptEnabled(true);
c)给webView添加js接口类,并取别名
webView.addJavascriptInterface(new WebInterface(), "robot");
至此,安卓的配置完成了。
下面配置HTML页面
在代码中添加下面的代码,如果加载了页面了,就会调用起别名叫robot这个接口类里面的js接口方法
点击我调用android 方法
2)通过设置webview的setWebViewClient。安卓通过url跳转时的改变,来进行不同的操作
当webview加载的页面出现变化的时候,可以进行不同的操作,例如访问站外的网址,或者黑名单的网址进行提示
eg:
wb.setWebViewClient(newCustom());privateclassCustomextendsWebViewClient{
@OverridepublicbooleanshouldOverrideUrlLoading(WebView view, String url) {// TODO Auto-generated method stubLog.e("tttt", url);if(url.contains("bai")) {
Dialog d=newDialog(MainActivity.this);
d.setTitle("ttttt");
d.show();returntrue;
}returnfalse;
}
@OverridepublicvoidonPageStarted(WebView view, String url, Bitmap favicon) {// TODO Auto-generated method stubsuper.onPageStarted(view, url, favicon);
}
@OverridepublicvoidonPageFinished(WebView view, String url) {// TODO Auto-generated method stubsuper.onPageFinished(view, url);
}
}
2、安卓Native界面调用H5方法
主要就是通过webview的LoadUrl方法
eg:
webView.loadUrl("javascript:noParamFunction();");
注:需要页面加载完成之后调用才有效。因为js脚本需要完全加载到页面中才可以调用到,否则没有任何效果