web怎么嵌入到原生app

211 阅读1分钟
  1. 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>