2017-02-17 6 views
2

アプリがバックグラウンドで開かれているときにReact Native Android deeplinkを開きたいと思います。iOSアプリがバックグラウンドで閉じられている Linking.addEventListener('url', this.handleOpenURL);アプリがバックグラウンドで開いているときにReact Native Androidのdeeplinkを開くにはどうすればいいですか?

Linking.getInitialURL().then(url => {return this.handleOpenURL({ url })});

Androidアプリがで開いている:

のiOSアプリケーションはバックグラウンドで開いている:ここでは、私は他の同様のケースを扱う方法です背景: ? - このケースを処理する最善の方法は何ですか?

Androidアプリはバックグラウンドで閉じている: Linking.getInitialURL().then(url => {return this.handleOpenURL({ url })});

+0

これについての回答はまだ見つかりましたか?背景にアンドロイドと同じ問題がある –

+0

残念なことに、 –

+0

私は主なアクティビティでネイティブアンドロイドコードoNewIntent()を使用して解決しました。 –

答えて

1

ザ・リンクは、バックグラウンドでアンドロイドランニングで動作するようには思えないネイティブ反応します。ネイティブのアンドロイドコードを使用してこれを解決できます。主なアクティビティでは、次のようなメソッドをオーバーライドします。

@Override 
public void onNewIntent(Intent intent) { 
    if(intent.getData() != null) { 
     Uri deepLinkURL = intent.getData(); 
     DeepLink deepLink = new DeepLink(deepLinkURL.toString()); 
    } 
} 

あなたがする必要があるのは、このJavaコードを反応したネイティブのjavascriptと統合することです。これは、反応したネイティブネイティブモジュールで行うことができます。このウェブサイトにはいくつかの文書があります。より効果的なソリューションにするには、http://square.github.io/otto/のようなものを使用して、そのディープリンクオブジェクトをリッスンするイベントバスを作成します。ディープリンクイベントは、イベントが発生すると効果的に発生します。私はこれが男に役立つことを願っています:)

+0

私は同じ問題に直面しています。私はAndroidで初めてです。 'DeepLink'がどこから来たのか教えていただけますか?それはちょうどアンドロイドのライブラリやサードパーティのライブラリ、それを取得する方法ですか?ありがとうございます –

+0

それはネイティブの反応に組み込まれています。ライブラリは、https://facebook.github.io/react-native/docs/linking.htmlにリンクされています。 –

関連する問題