Android webView 注入js文件,及交互

Android webView 注入js文件,及交互,第1张

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.总结:

第一步:

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()

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11613610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存