- JS调⽤安卓⽅法
参考地址 www.jianshu.com/p/52f262d9b… 环境如图
function s() {
//android为约定的别名(别名也可以自己定义,保持一致就好);
//back()为原生的方法,方法名自己定保持一致就好
var result=window.android.back();
//将返回结果显示在id为p的控件上
document.getElementById("p").innerHTML=result;
}
2.安卓调⽤JS⽅法
//js封装好方法即可,安卓就可以调用了
function sum(a,b){
return a+b;
}
3.js主动向安卓发送数据
使⽤url地址拼接参数即可
window.location.href="protocol://android? code=call&data="+JSON.stringify(json);
h5调⽤ios⽅法
使⽤window.webkit.messageHandlers.⽅法名.postMessage({body: '要发送的数据'});
<html>
<body>
<h1>hello world</h1>
<button onclick="say()">say hello</button>
</body>
<script>
function say(){
//前端需要用 window.webkit.messageHandlers.注册的方名.postMessage({body传输的数据} 来给native发送消息
window.webkit.messageHandlers.sayhello.postMessage({body: 'helloworld!'});
//这句很重要,利用WKWebView的新特性MessageHandler来实现JS调用原生方法,很博客都没有写上这句,所以导致我一直没有成功
}
</script>
</html>
IOS 调⽤H5⽅法 直接调⽤即可。前端只管封装⽅法。 H5代码:
<button onclick="myAction();" style="">点击按钮</button>
//如需传值,在方法名后面的括号里面加上即可
<script >
function myAction(){
//处理逻辑
}
</script>