0.js文件:
链接: https://pan.baidu.com/s/1MaWKxgkYgQTVQCgn8-dxLg
提取码:o6wy
3.添加js要调用的Android方法
4.添加 (JsBridge:js中调用Android方法的对象名)
5.注入js
6.Android 调用js方法 传值给js
步骤 3 中发送了处理后的消息,在webactivity中接受消息并处理:
数据示例:(参数需要使用单引号包着)
else 中对应的
callbackResult('sr1557665118336','{"data":"test"}')
if中对应的
javascript:callbackResult('sr1557665118336','{"data":"test"}')
7.补充:eventbus 消息实体封装类
8.总结:
1、设置webview对js的支持
2、在html中添加 evaluateNativeToJS 方法
3、在Android中调用 evaluateNativeToJS 方法
1、创建js调用的接口(添加js要调用的方法 evaluateJsToNative)
2、设置webview对js的支持
3、js调用 evaluateJsToNative方法
function getAvg(res) {
res = JSON.parse(res)
if (res.code == 401) {
app.tokenFailed()
return
}
if (res.code == 500) {
app.busNone()
return
}}
以上js的写法 app.tokenFailed()是JS调用Android的方法,下面的接口类的写法
class WebAppInterface {
public Context mContext
public WebAPPInterface(Context context) {
this.mContext = context
}
@JavascriptInterface //加上这一句话,不然的话在高版本的时候有可能报错
public void tokenFailed() { //如果token失效其他两个fragment会提示 此处不做处理
LogUtil.d("tokenFailed: ")
}
@JavascriptInterface //加上这一句话,不然的话在高版本的时候有可能报错
public void busNone() { //车辆不存在
ToastUtils.showShortToast( "车辆不存在")
}
//as调用js
public void getAvg(final String response) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
busDataWebView.loadUrl("javascript:getAvg('" + response + "')")
}
})
}
public void getWarnByDay(final String response, final String type) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
busDataWebView.loadUrl("javascript:getWarnByDay('" + response + "','" + type + "')")
}
})
}
}
在下面是初始化通信
//打开本包内assets目录下的index.html文件
busDataWebView.loadUrl("file:///android_asset/pages/data.html")
//1、设置允许执行的JS脚本
busDataWebView.getSettings().setJavaScriptEnabled(true)
mInterface = new WebAPPInterface(getContext())
//2、添加通信接口
busDataWebView.addJavascriptInterface(mInterface, "app")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)