web-dev-qa-db-fra.com

React Webview native get url

Composant Webview me permettant de spécifier une URL de destination, par exemple facebook.com

render() {

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

Cependant, si je clique sur le lien dans Facebook, comment puis-je obtenir l'url cliquée ou l'URL atterri?

17
bns

Voici une vue Web que j'ai utilisée pour mon projet précédent.

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

pour vous l'essentiel est cette ligne:

           onNavigationStateChange={this._onNavigationStateChange.bind(this)}

et vous pouvez lire l'URL comme ceci:

_onNavigationStateChange(webViewState){
  console.log(webViewState.url)
}

Si je me souviens bien, cela se déclenche 3 fois lors du chargement d'une URL.

prototype d'objet webviewState:

{
  canGoBack: bool,
  canGoForward: bool,
  loading: bool,
  target: number,
  title: string,
  url: string,
}

La troisième (dernière) fois que cet événement est appelé, l'attribut de chargement est faux

faites-moi savoir si cela aide.

45
dv3