只是针对目前存在的交互方式做个比对。不会涉及任何实现。如需知道具体的使用。可自行baidu或者Google。
拦截协议
拦截协议是最简单的交互方式,在Android端和iOS端直接拦截,可以统一web前端
的代码。web前端
通过在链接中带上参数。比如:
88gongxiang://loginFunc&name=xxx&pwd=123456
。通过拦截url的scheme
等于88gongxiang
。由Native拦截后自行处理。
JavaScriptCore
iOS7之后苹果推出了JavaScriptCore这个框架,从而让web页面和本地原生应用交互起来非常方便,而且使用此框架可以做到Android那边和iOS相对统一,web前端写一套代码就可以适配客户端的两个平台,从而减少了web前端的工作量。
第三方框架WebViewJavaScriptBridge
WebViewJavaScriptBridge
时目前iOS流行的JS交互框架,WebViewJavaScriptBridge
是基于拦截协议进行的封装。同时支持UIWebview
和WKWebview
。但需在web前端
嵌入相应的代码,同时web前端
的代码需要遵守WebViewJavaScriptBridge
的规定,无法做到与Android的统一。
WKWebview
WKWebview
是 iOS 8
之后提供的一款浏览器组件,在JS
与WKWebview
进行交互时,JS调用window.webkit.messageHandlers
来发送消息调用Native
。无法做到web端
统一代码。
以上交互方式,根据不同的需求来决定采用哪种方式,以下可做参考:
- 如果
web端
人手不足、或是想做统一处理,可以采用JavaScriptCore
、拦截协议
的方式。如果是简单的交互的直接上拦截协议
的方式就行。 第三方框架WebViewJavaScriptBridge
、WKWebview
则需要web端
的配合。