最近一段时间都在做iOS与JS的交互,有自己写JS的,也有对接别人的JS的。这里总结下这段时间看到一些方法,把套路弄出来,便于之后使用。
- JS 调 iOS
- iOS 接收到 JS 的调用请求
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 直接调用方法,