再次渲染本机应用程序Web-View

时间:2020-09-03 07:43:32

标签: react-native webview

我有一个带有webview的本地应用。 当我单击通知时,我想转到预定义页面(导航到页面),但是应用程序未呈现新视图。 这是我打开应用程序时的代码(无需单击通知):

return (
  <WebView
    automaticallyAdjustContentInsets={false}
    source={{
      uri: 'https://my-url/',
    }}
    javaScriptEnabled={true}
    domStorageEnabled={true}
    startInLoadingState={true}
    style={{
      marginTop: 25,
    }}
  />
); 

而且,当我单击通知时:

return (
  <WebView
    automaticallyAdjustContentInsets={false}
    source={{
      uri: 'https://my-url/new',
    }}
    javaScriptEnabled={true}
    domStorageEnabled={true}
    startInLoadingState={true}
    style={{
      marginTop: 25,
    }}
  />
);

当我单击通知时,该应用程序将再次在https:// my-url中打开。

当我单击通知时,我想浏览https:// my-url / new。

你能帮我吗?

1 个答案:

答案 0 :(得分:1)

使用状态设置Web视图的URL。状态更改后,Web视图将使用更新的URL重新加载。

使用“ https:// my-url /”初始化url状态

假设您正在使用类组件,请在构造函数中设置初始网址。

constructor(props) {
    super(props);

    this.state = {
        url: 'https://my-url/'
    }
}

当您单击通知时,请使用所需的网址设置状态。

onNotification: function(notification) {
    this.setState({
        url: 'https://my-url/new'
    })
}

这应该在webview中呈现预定义页面

return (
  <WebView
    automaticallyAdjustContentInsets={false}
    source={{
      uri: this.state.url,
    }}
    javaScriptEnabled={true}
    domStorageEnabled={true}
    startInLoadingState={true}
    style={{
      marginTop: 25,
    }}
  />
);