React Native webview获取网址

bns*_*bns 18 webview react-native

Webview组件允许我指定目标URL,例如facebook.com

render() {

    return (
        <WebView
          source={{uri: https://www.facebook.com}}
          style={{marginTop: 20}}
        />
    );
  }
Run Code Online (Sandbox Code Playgroud)

但是,如果我点击Facebook中的链接,我如何获取点击的网址或网址?

dv3*_*dv3 48

这是我以前的项目使用的Webview.

<WebView
       ref="webview"
       source={{uri:this.state.url}}
       onNavigationStateChange={this._onNavigationStateChange.bind(this)}
       javaScriptEnabled = {true}
       domStorageEnabled = {true}
       injectedJavaScript = {this.state.cookie}
       startInLoadingState={false}
     />
Run Code Online (Sandbox Code Playgroud)

对你来说必不可少的是这一行:

           onNavigationStateChange={this._onNavigationStateChange.bind(this)}
Run Code Online (Sandbox Code Playgroud)

你可以这样读取URL:

_onNavigationStateChange(webViewState){
  console.log(webViewState.url)
}
Run Code Online (Sandbox Code Playgroud)

如果我没记错的话,加载网址时会发生3次火灾.

webviewState对象原型:

{
  canGoBack: bool,
  canGoForward: bool,
  loading: bool,
  target: number,
  title: string,
  url: string,
}
Run Code Online (Sandbox Code Playgroud)

调用此事件的第3个(最后)时间,loading属性为false

让我知道它是否有帮助.

  • 如何仅检测url/hash更改?如果站点没有更改状态,则onNavigationStateChange不会触发. (2认同)