御幸備忘録

主にUnityに関してのブログです。

【Unity】Firebase Dynamic Linksで2回同じリンクが呼び出される時の解決

はじめに

 UnityでAndroid向けに開発したアプリでFirebase Dynamic Linksを使っていると、同じリンクが2回も開く不具合があります。*1他のアプリからDynamic Linksを開いた後、アプリを再起動すると前回のリンクから開いた時と同じ挙動をします。

原因と解決

 Intent ExtraにDynamic Linksが残っているのが原因です。Dynamic Linksから起動した後、以下のコードを呼び出しIntent Extraから削除する必要があります。

AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
var intent = activity.Call<AndroidJavaObject>("getIntent");

intent.Call("removeExtra", "com.google.firebase.dynamiclinks.DYNAMIC_LINK_DATA");
intent.Call("removeExtra", "com.google.android.gms.appinvite.REFERRAL_BUNDLE");

参考リンク

github.com

*1:私の環境では2回でしたが、下記のGitHubのIssueでは毎回