反应本机 Webview 进程已终止

react native Webview Process Terminated

我使用 React Native 在 Web 视图上显示本地 HTML, 我注意到有时 webView 随机崩溃,我在控制台上收到消息:

Webview Process Terminated

我已经搜索过了,但找不到任何答案? 那是什么?为什么会这样?如何避免它或在该错误后重新加载网络视图?

 <WebView
      style={styles.webContainer}
      originWhitelist={['*']}
      source={isAndroid ? {uri:'file:///android_asset/binaura.html'} : HTML_FILE}

      javaScriptEnabled={true}
          domStorageEnabled={true}

    />

如果“WebView”是指 react-native-webview:

如果 WebView 使用过多资源,则会在 iOS 上发生这种情况,并导致 WebView 崩溃(显示空白页面)或应用冻结.

有一个回调 属性、onContentProcessDidTerminate(在 this PR 中引入),您可以使用它来侦听终止并通过更新其键强制重新加载 WebView。这有点 hack,但它有效。

用法示例:

class MyComponent extends Component {
  state = {
    webviewKey: 0,
  }

  reload() {
    this.setState({
      webviewKey: this.state.webviewKey + 1,
    })
  }

  render() {
    return (
      <WebView
        key={this.state.webviewKey}
        onContentProcessDidTerminate={this.reload}
      />
    )
  }
}