2016-08-23 22 views
8

WebViewコンポーネントで、宛先URLを指定できるようになりました。私はFacebookの中のリンクをクリックするとfacebook.comReactネイティブwebview get url

render() { 

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

はしかし、どのように私は、URLがクリックされたか、URLが上陸している得ることができますか?

答えて

21

私の以前のプロジェクトで使用したWebviewです。あなたのための

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

不可欠この行です:

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

、あなたはこのようにURLを読むことができます:

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

私の記憶が正しければ、URLを読み込むときに、これは3回を発射。

webviewStateオブジェクトのプロトタイプは:

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

このイベントが呼び出された第3回(最終)時間、ロード属性が

はそれが助けなら、私に知らせて偽です。

+0

これは機能します。ありがとう。 webViewStateの詳細についての説明はありますか? – bns

+0

URL /ハッシュ変更のみを検出する方法は?サイトが状態を変更しない場合、onNavigationStateChangeはトリガーしません。 – chetan

+0

@chetanはソースを変更しませんか?私は長い間RNで働いていません – dv3

関連する問題