0.js文件:
链接: https://pan.baidu.com/s/1MaWKxgkYgQTVQCgn8-dxLg
提取码:o6wy
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.总结:
第一步:mainfest.xml中加入网络权限
<uses-permission android:name="android.permission.INTERNET" />
第二步:
加载本地写好的html文件(定义好js中提供给android调用的方法 funFromjs(),和android提供给js调用的对象接口fun1FromAndroid(String name)),放在 assets目录下。
<body>
<a>js中调用本地方法</a>
<script>
function funFromjs(){
document.getElementById("helloweb").innerHTML="HelloWebView,i'm from js"
}
var aTag = document.getElementsByTagName('a')[0]
aTag.addEventListener('click', function(){
//调用android本地方法
myObj.fun1FromAndroid("调用android本地方法fun1FromAndroid(String name)!!")
return false
}, false)
</script>
<p></p>
<div id="helloweb">
</div>
</body>
第三步:
实现android工程与js交互的相关代码
android主题代码:
public class JavaScriptObject {
Context mContxt
@JavascriptInterface //sdk17版本以上加上注解
public JavaScriptObject(Context mContxt) {
this.mContxt = mContxt
}
public void fun1FromAndroid(String name) {
Toast.makeText(mContxt, name, Toast.LENGTH_LONG).show()
}
public void fun2(String name) {
Toast.makeText(mContxt, "调用fun2:" + name, Toast.LENGTH_SHORT).show()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)