2016-08-23 37 views
8

Bir hedef URL belirtmeme izin veren web görünümü bileşeni, ör. facebook.comReact Native webview get url

i Facebook'a bağlantıyı tıklarsanız
render() { 

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

Ancak, nasıl tıklandığını url veya url alabilirim indi?

cevap

21

Önceki projem için kullandığım bir Web görünümü.

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

sizin için gerekli bu çizgidir:

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

ve böyle URL'yi okuyabilir:

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

bir url yüklerken bu YANGINLARI doğru 3 kez Hatırlarsanız.

webviewState nesne prototip:

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

bu olay denir 3 (son) zaman, yükleme nitelik

yardımcı olur bana bildirin yanlıştır.

+0

Çalışıyor. Teşekkürler. WebViewState detayında herhangi bir açıklama var mı? – bns

+0

Yalnızca url/hash değişikliği nasıl algılanır? site durumu değiştirmezse, onNavigationStateChange tetiklenmez. – chetan

+0

@chetan kaynak değişmez mi? Uzun zamandır RN ile çalışmadım. – dv3