最近一直在忙,今天抽空写一下 H5 和 Native 的交互
一、选择
- 项目本身 webview 使用的是 WKWebview,其实 WKWebview 自带的 messageHandle 也可以满足此需求
- JSContext,源自于 JavaScriptCore 框架中的东西,最后不使用此方案源于一下几点
- 但是其中繁杂的字符串使用,让我觉的可能会由于粗心出现不可预知的错误
- 加载时机的问题,当你重新 loadrequest 的时候,会导致 js 注入失败
- 回调方法略复杂
- JavaScriptBridge,最后选择此库源于以下几点
- 使用简单,注册完毕之后设置完代理,只需要负责注册方法和调用方法
- 回调简单,两端回调 responsecallback 包含在注册的方法中。使用 block
- 三端通用,JavaScript 和 iOS、Android 都可以(Android 版本库)
- Ps :关于 Android 版本库,其中很多是按照 iOS 版的 JavaScriptBridge 改写的。但是其中有很多问题,尤其是各种调用时机问题,上面的链接是经过我旁边的 Android 小哥试了四五个版本之后发现的,修复了各种改写版的问题
...大约 3 分钟