【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");