9

Androidアプリの再起動時にfirebaseダイナミックリンクが再起動するという問題があります。次のシーケンスで問題が発生します。

  1. ディープリンク URL をクリックします
  2. ディープリンクが指すビューでアプリが開かれます (予想どおり)
  3. アプリを(完全に)閉じます
  4. アイコンからアプリを開く
  5. ディープリンクが指すビューでアプリが開かれます(そうすべきではありませんが)
  6. その後は正常に動作します

最新 (9.0.2) のライブラリを使用しています。コードは例とほとんど同じです (例: https://firebase.google.com/docs/dynamic-links/android#add-an-intent-filter-for-deep-links )、autoLaunchDeepLink は false です。

  • これを引き起こすバグがあることに気付きましたが、現在のリリースで修正する必要があります: https://github.com/googlesamples/google-services/issues/141

  • github エラー レポートで指示されているように、AppInvite.AppInviteApi.getInvitation を 2 回呼び出して回避策を試しました。失敗。

  • onCreate では、savedInstance が null であることを確認し、そうである場合にのみディープ リンクを確認しています。

  • アプリの実行中に処理するために、onNewIntent でもディープ リンクをチェックしていますが、これは問題が発生したときに呼び出されません。

  • 私のマニフェストでは、特定のプロトコルとホストを含​​むインテント フィルターはメイン アクティビティにのみ含まれています。プロトコルは他のアクティビティの他のフィルターでも使用されていますが、効果がないものでは別のプロトコルも使用してみました。メイン アクティビティのみが AppInvite.AppInviteApi.getInvitation を使用してインテントを取得します。すべてのアクティビティから他のインテント フィルターを削除しても、問題が発生します。

何が間違っているのか、何を確認する必要があるのでしょうか?

4

1 に答える 1

5

getInvitation()ランチャー アクティビティと、動的リンクを処理するために宣言したアクティビティの両方で呼び出す必要があります。

ただし、動的リンクを処理するアクティビティでは、このように の 2 番目のパラメータとしてアクティビティを渡す代わりにnullを渡す必要があります。getInvitation()AppInvite.AppInviteApi.getInvitation(mGoogleApiClient, null, autoLaunchDeepLink)

于 2016-06-07T21:18:09.117 に答える