iOS 和 JS 交互

本文总结了iOS与JS交互的各种方法,包括通过URL Schemes、提示框、JavaScriptCore和第三方框架webviewjavascriptbridge。重点讨论了WKWebView和UIWebView中如何实现JS调用iOS,以及iOS调用JS的场景,提供了不同方法的优缺点。
摘要由CSDN通过智能技术生成

最近一段时间都在做iOS与JS的交互,有自己写JS的,也有对接别人的JS的。这里总结下这段时间看到一些方法,把套路弄出来,便于之后使用。

  1. JS 调 iOS
  2. iOS 接收到 JS 的调用请求
  3. iOS 调 JS

    • 1、JS 调 iOS

      1.1 通过URL Schemes,这个是早期最常用的方法,将要调用的方法名、参数拼接到特定开头的URL中(如例子中的toyun),这种方法就容易实现,但是JS要将参数拼接、iOS之后又要将参数解析,操作比较多,麻烦。

      <script>
           window.location.href = 'toyun://callCamera';
      <script>

    1.2 通过提示框alert 输入框prompt 对话框confirm
    这个只能用在WKWebView中,和1.1类似也是拼接URL

    <script>
        window.alert('toyun://callCamera');
        window.prompt('toyun://callCamera');
        window.confirm('toyun://callCamera');
    <script>

    一般情况下是不使用这种方法的,可能JS端是个正常的alert提示,iOS也会拿到这个调用。 我再这里遇到了一个坑,别人的JS使用了一个叫RainbowBridge.js的脚本,这个是JS跟Android的一个交互框架一类的东西,里面使用的就是window.prompt掉用原生的Android,迫使我只能使用这种方式了

    1.3 此方法也只适合WKWebView,应该是向浏览器注册一个消息,具体的我也不清楚,但操作起来还是挺方便的,一句话搞定

    <script>
        window.webkit.messageHandlers.对象名.postMessage(<数据>);
    <script>

    1.4 直接调用方法,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值