HybridAPP 通过JSBridge提供调用Native功能的接口,让混合开发中的『前端部分』可以方便地使用地址位置、摄像头甚至支付等 Native 功能。它的核心是 构建 Native 和非 Native 间消息通信的通道,而且是 双向通信的通道。
JSBridge的实现原理
js调用Native
注入api/对象
原理:通过WebView提供的接口向js的context(window)注入一个对象或者方法,js调用时,直接执行对应的Native代码逻辑
iOS
UIWebVIew(iOS2+)和WKWebView(iOS8+)的调用方式有所区别
//假设ios客户端约定方法名为nativeBridge
//UIWebView
window.nativeBridge(message);
//WKWebView
window.webkit.messageHandlers.nativeBridge.postMessage(message);
复制代码
Android
原理:通过WebView提供的addJavascriptInterface方法给浏览器window注入一个命名空间,然后给Web增加一些可以操作Java的反射。
// addJavascriptInterface
mWebView.addJavascriptInterface(new Class(), 'android');
//@JavascriptInterface
public class Class(){
@JavascriptInterface
public void method(){