我正在尝试在由 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/