JS 调 Android 原理,JSBridge的实现原理

本文详细介绍了JSBridge的工作原理,包括JS如何调用Native以及Native如何调用JS。在JS调用Native方面,通过WebView的接口注入API或对象,拦截URL scheme,或改写浏览器原有对象如prompt。在Native调用JS时,利用UIWebView或WKWebView的JavaScript执行方法。同时,文章还提及了不同平台的兼容性和安全问题,如Android 4.2后的@JavascriptInterface安全改进。
摘要由CSDN通过智能技术生成

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(){

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值