javascript - React.js webview 和 native 代码之间进行通信?

标签 javascript reactjs backbone.js hybrid-mobile-app

我不是在这里讨论react-native

这是一个包含 native 和 JavaScript 的混合应用程序。
我们使用的 Javascript 库恰好是 React.js。

我们在类似的设置中使用了 Backbone,并且在 native 和 js 世界之间传递消息时没有遇到任何问题。

为了让 native 端与 js 对话,我们在页面中公开了一个全局变量(Backbone View 实例)。

所以我们可以做类似window.login_view.do_login()的事情。

这是可能的,因为我们有 login_view 实例。

但是,对于react.js,我不知道如何创建这样的实例,因为我的代码如下所示,并且没有我可以引用的实例

 ReactDOM.render(
   <Provider store={store}>
     <Router>
       <Article/>
     </Router>
   </Provider>,
   document.getElementById('mainApp')
 )

原生端如何在混合应用程序中与react.js对话?

最佳答案

使用引用:

...
<Article ref={(article) => { this._article = article; }} />
...

在您的文章类别中:

componentDidMount: function() {
    window.globaVarArticle = this._article;
} ...

现在您可以使用 window.globaVarArticle.[methodname] 访问类 Provider 的方法

关于javascript - React.js webview 和 native 代码之间进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47093006/

相关文章:

jquery - requireJS 中的 Backbone.js + underscore.js + jQuery ...这是正确的方法吗?

javascript - 如何使用 Reactjs 更新 Google 电子表格中的特定行?

javascript - 在 Chrome 扩展中使用 qTip 显示注释

javascript - 将坐标从 Revit 转换为 Viewer

reactjs - AWS Cognito CompleteNewPasswordChallenge 调用 onFailure 方法,但用户在 AWS 控制台中得到确认

reactjs - React 数据网格过滤器默认启用(并打开)

javascript - React js中输入按钮的onClick事件

javascript - 主干事件获取元素类型

javascript - Express.js 代码上的 Windows 脚本宿主错误 800A03EA

javascript - 在 Backbone JS 中保存后引用 "this" View 回调处理程序(成功或错误)的正确方法