React Native Webview不重置注入的JavaScript

时间:2017-08-24 11:43:46

标签: javascript react-native webview

当达到某个URL时,我必须检索WebView的html内容。为此,我在达到此URL时使用WebView组件提供的injectJavaScript函数注入window.postMessage(document.documentElement.innerHTML);

这在第一次工作正常,但是在重新启动后再次尝试相同的事情时,不会处理重定向,并且在第一页调用injectJavaScript,就好像它从未被删除一样。此行为存在于iOS上,而不是Android上。

任何人遇到同样的问题或者有解决方法吗?

1 个答案:

答案 0 :(得分:0)

使用react-native-webview软件包:

import { WebView } from 'react-native-webview';

<WebView
    ref={(ref) => { this.webview = ref; }}
    source={{ uri: this.state.webViewUrl }}
    originWhitelist={['*']}
    javaScriptEnabledAndroid={true}
    injectedJavaScript={jsCode}
    onMessage={this._onMessage} // only if you want connection back
/>

您可以传递js代码:

const jsCode = `
document.querySelector('button.btn-success').addEventListener("click", function() {  
    window.ReactNativeWebView.postMessage(JSON.stringify({type: "click", message : "ok"}));
}); 
true;
`