Estoy tratando de crear una aplicación de Unity en la que Firebase envíe notificaciones tanto a Android como a iOS. pero quiero abrir una escena específica cuando alguien haga clic en la notificación. No tengo idea de cómo hacer esto.
Creo que está buscando algo así como un enlace dinámico. Hay otro servicio de Firebase para eso llamado enlaces dinámicos aquí: https://firebase.google.com/docs/dynamic-links/unity/receive o enlaces profundos en la unidad aquí: https ://docs.unity3d.com/Manual/habilitación-deep-linking.html
var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); var currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity"); var intent = currentActivity.Call<AndroidJavaObject>("getIntent"); var extras = GetExtras(intent); var sceneToLoad = GetProperty(extras, "<key to load in string>"); var currentScene = SceneManager.GetActiveScene();Función ObtenerExtras()
private static AndroidJavaObject GetExtras(AndroidJavaObject intent) { AndroidJavaObject extras = null; try { extras = intent.Call<AndroidJavaObject>("getExtras"); } catch (Exception e) { Debug.LogError("firebaseScript.GetExtras()->" + e.Message); } return extras; }Función ObtenerPropiedad
private static string GetProperty(AndroidJavaObject extras, string name) { var s = string.Empty; try { s = extras.Call<string>("getString", name); } catch (Exception e) { Debug.LogError("firebaseScript.GetProperty() throws ->" + e.Message); } return s; }