反应本机 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}
/>
)
}
}
我使用 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}
/>
)
}
}