我正在尝试在由 native WebView加载的网页中设置全局变量。我正在尝试使用injectJavascript Prop 设置全局变量,但是我收到一条错误消息,告诉我injectJavascript应该是一个函数。
如何格式化injectJavaScript函数以将消息作为全局变量传递到加载的网页上?谢谢你。
class Browser extends React.Component {
render() {
const { url } = this.props;
return (
<View>
<WebView
source={{ uri: url }}
injectJavaScript={
"window.testMessage = 'hello world'"
}
/>
</View>
);
}
}
最佳答案
请尝试以下方法:
<WebView
ref={c => this._webview = c}
javaScriptEnabled={true}
injectedJavaScript={`window.testMessage = "hello world"`}
/>
injectedJavaScript
是在加载时将 JS注入(inject)到Web View 中的 Prop ,即注入(inject)。这就是您似乎想要的。另一方面,如何使用
injectJavascript
?这是通过在webview的ref上调用它来以编程方式即时注入(inject)更多JS。在这种情况下,它可能看起来像这样:
this.webview.injectJavascript(`window.reactComponent.forceUpdate();true;`)