在WebView源代码中执行JavaScript

jes*_*ndk 5 javascript react-native

任何人都知道如何(如果可能的话)在React Native中的WebView中执行JS?

场景:我在WebView中显示了这个远程登录页面(网站),并且该网站具有与用户活动相对应的一系列事件.所有事件都会触发一个回调,每个回调都是WebView必须监听的(不是问题).
在每个回调中都有一个JavaScript函数的引用,必须在WebView中调用(这就是问题!).
所以从我的React Native应用程序中,我需要调用这个JavaScript函数,它放在我的WebView中加载的网站页面(源代码)上.

我拥有的东西:我用它监听回调onShouldStartLoadWithRequest并操纵WebView的行为,它运行得很好.
关于JavaScript的执行,我尝试了这种方法,getWebViewHandle但是没有这样做,至少不是我的座位.
我也查看了injectedJavaScript属性,但问题是我不知道在回调被触发之前要执行什么JavaScript.

谁知道如何解决这个问题?

hal*_*ilb 9

2018 年 11 月更新

网页视图组件现在支持injectJavaScriptinjectedJavaScript道具。

例子:

<WebView
  source={{ uri: 'https://github.com/facebook/react-native' }}
  injectedJavaScript="window.alert('first message')"
  injectJavaScript={() => {
    return "window.alert('second message')";
  }}
/>
Run Code Online (Sandbox Code Playgroud)

原答案

使用 iOS 和 Android 本机组件可以在 Webview 中调用 javascript 方法。但是目前 react-native 不提供 JavaScript 执行所需的 API。你可以在这个 github issue 中看到讨论。

但是,有一个3rd 方模块可以在您的应用程序和 Webview 之间提供双向通信。您可以在将一些本机代码集成到您的项目中后开始使用它。