2

FacebookやTwitterでユーザーにログインしようとしているので、検証プロセスはAPIになっているので、facebook(またはtwitter)ログインページを表示し、 APIはトークンを返します。リアクションネイティブのコールバック後にリダイレクト

問題は、Androidでテストしようとすると、メインビューにリダイレクトされません。私は読んでいた、おそらく私はどのようにJavaScriptコードを注入したが、何も動作するようだ。

http://ciudad-facil.perceptum.cl/callback/facebook?code=AQDtuj5zh0dCUDLG2akn5tomvwUK53GQEmpS9pOkl49JKRLyu92UHAP21XsKPhBUkii--pD5yW66K5mfPx_cxz3-bYRxEQOveiHvHMdtYD2RLCHJVEdig04dj3QtVVRQvXDHV0ym18Iyua-IWJEdwNA_cy1liQnDxAcFxPw7mtGiVGcmZVkEf0Wv4VzujocPjiLLJR6bdvV5neQYjJD9mcOeM6V4NUoegIGymt735Oag8CFWret-7rQ6xas2J4ZKztd_POl6u93aPUusHbonFxGvPMfKuUXiwbB64gIi_eI_AWIKowBWH6a0hUp3AxjvDuU&state=OVzqhRIJaemJYaVRvgqNTZ7i2A4f6zc6UGbdXpbl#=

が、スキームに私はこのような何かを得た:

はその後多分AndroidManifest内のURIスキームがあると考えていた、問題は、コールバックURLは、このようなものであるということです

<data android:host="www.ciudad-facil.perceptum.cl" 
    android:pathPrefix="/callback/facebook" 
    android:scheme="http" /> 

しかし、働いていない、これはユーザーにショーのためにページを使用してイムコードです:

_onMessage = (event) => { 
console.log('entro'); 
    var response = event.nativeEvent.data; 
    if (response != '') { 
    response = JSON.parse(response); 
    console.log(response); 
    try { 
     AsyncStorage.setItem('auth_token', response.token); 
     AsyncStorage.setItem('created_user', (response.created).toString()); 
     global.auth_token = response.token; 
    } catch (error) { 
     console.log('AsyncStorage error: ' + error.message); 
    } 

    Actions.Main(); 
    } 

}

render() { 
var jsCode = "window.postMessage(document.getElementsByTagName('PRE')[0].innerHTML)"; 
return (
     <WebView 
     source={{ uri: this.state.authUrl }} 
     onMessage={this._onMessage} 
     injectedJavaScript={jsCode} 
     startInLoadingState={true} 
     /> 
); 

}

PD:iOS版では、これは完璧に動作します。問題はちょうどAndroidです

答えて

0

これは誰もが同じものを通過します。ソリューションです:すべての

まず、あなたのAndroidManifest、たとえば上のスキームを設定します。

<data android:host="www.xxxxx.com"/> 

を次に、あなたは、Android、JSコードを挿入する形式を使用しているときはである:

window.__REACT_WEB_VIEW_BRIDGE.postMessage(....) 

だから、それは解決策です。

関連する問題