如何修复'WKWebViewManager.evaluateJavaScript不是函数

时间:2019-04-11 07:47:17

标签: ios react-native wkwebview expo react-native-ios

我正在使用 Expo 的React Native应用。我将项目弹出到ExpoKit,并添加了 react-native-wkwebview-reborn 。我遇到这个库的一些问题,因为总是会出现此错误:

enter image description here

这是我的代码: ContentWebView.ios.js

render() {
return (
    <View style={styles.container}>
      <WKWebView
          ref={WEBVIEW_REF}
          sendCookies={true}
          style={styles.webview}
          source={{uri: this.props.url}}
          allowsLinkPreview={false}
          onMessage={(e) => this._handleMessage(e)}
          onNavigationStateChange={(e) => this._onNavigationStateChange(e)}
      />

这是我的应用崩溃的地方:

_onNavigationStateChange(e) {
    this.refs[WEBVIEW_REF].evaluateJavaScript('window.postMessage({cookies: document.cookie}); clearInterval(window.myCartInterval); window.myCartInterval = setInterval(function(){window.postMessage({cookies: document.cookie});},5000);');
  }

如果您有任何想法,它将非常有用!谢谢

2 个答案:

答案 0 :(得分:0)

您可以尝试更改代码吗?

尝试一下。

   <WKWebView
          ref={WEBVIEW_REF => {this.webview = WEBVIEW_REF;}}
          sendCookies={true}
          style={styles.webview}
          source={{uri: this.props.url}}
          allowsLinkPreview={false}
          onMessage={(e) => this._handleMessage(e)}
          onNavigationStateChange={(e) => this._onNavigationStateChange(e)}
      />
...
_onNavigationStateChange(e) {
    this.webview.evaluateJavaScript('window.postMessage(e)');
  }

答案 1 :(得分:0)

该函数在React Native中被命名为injectJavaScript