react-native - React Native Webview如何使用injectJavascript

标签 react-native webview global-variables

我正在尝试在由 react-native WebView 加载的网页中设置一个全局变量。我正在尝试使用 injectJavascript 属性设置全局变量,但我收到一个错误消息,告诉我 injectJavascript 应该是一个函数。

如何格式化 injectJavaScript 函数以将消息作为全局变量传递到加载的网页?谢谢你。

class Browser extends React.Component {

  render() {
    const { url } = this.props;
    return (
      <View>
        <WebView
          source={{ uri: url }}
          injectJavaScript={
            "window.testMessage = 'hello world'"
          }
        />
      </View>
    );
  }
}

最佳答案

如果你只是想设置全局变量,你可以使用注入(inject)的 JavaScript 属性,它会在 View 加载时将你的 js 代码注入(inject)到网页中。您可以简单地将js代码作为字符串传递。

如果您想从任何函数设置全局变量,那么您可以执行以下操作:
首先引用webview。

<WebView
     ref={ref => (this.webview = ref)}
     ...
/>

然后每当你想注入(inject) js 代码时,请执行以下操作:
this.webview.injectJavaScript('window.testMessage = "hello world"; void(0);');

查看链接以供引用。

https://snack.expo.io/Hke6dJFAW

关于react-native - React Native Webview如何使用injectJavascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49159577/

相关文章:

javascript - React Native 元素类型无效。检查渲染方法

ios - Cordova IOS webview 界面随机无响应

android - WebViews UID 与应用程序 UID 相同吗?

javascript - 获取整型变量的值以进行动态加载

c - 枚举C,全局变量错误: variable has initializer but incomplete type

react-native - React Native FlatList 一次渲染几个项目

javascript - 如何确保在 Firebase 查询填充数组后调用 setState?

ios - 在React Native中获取``PhotoEditorSDK/PhotoEditorSDK.h''文件未找到错误

Python:在模块和类之间共享全局变量

python - 在函数中设置全局变量