JSBridge如何在React-Native

时间:2018-06-09 04:58:14

标签: java android ios react-native webview

当我构建混合网络应用时(将网页放在 webview中,包含在原生应用中)。我使用scheme://functionName/functionParameters技巧来允许Javascript发送&#34;命令&#34;到本机代码。通过创建"<iframe src = URL/>或致电window.location = URL。然后在iOS&amp; Android方面,我拦截所有HTTP请求,并检查该URL是否以我们指定的scheme://开头,然后执行该功能。

问题是,技巧使用什么 React-Native 来允许JS与本地人交谈,反之亦然?他们使用相同的scheme方法吗?请用更大的图片来解释它们使用的机制。

2 个答案:

答案 0 :(得分:0)

在React Native中,您可以编写可以在JS中使用的native modules

您编写JS包装器(API或UI组件),然后使用RN约定为(两个)平台实现本机代码。

在JS网桥上更新更新:RN绝对不使用任何scheme网址,因为它未在网络视图中运行。它通过RN JS桥接器进行通信,该桥接器在两个方向上发送异步事件。

JS Bridge

此通信既用于自定义本机模块,也用于RN本身。

以下是关于该主题的更正式的documentation

答案 1 :(得分:0)

document.getElementById("myDiv").onclick = function() { alert(this.innerHTML) };

以上是React Native中用于包含Android原生模块的函数,以获取更详细的信息,请参阅here