如何在 Unity C# 中单击时从 firebase 云消息传递中打开特定场景
How can I open a specific scene from the firebase cloud messaging on click in Unity C#
我正在尝试制作一个 Unity 应用程序,其中 firebase 向 android 和 iOS 发送通知。但我想在有人点击通知时打开一个特定的场景。我不知道该怎么做。
我认为您正在寻找动态 link 之类的东西,这里有另一个名为动态 links 的 firebase 服务- https://firebase.google.com/docs/dynamic-links/unity/receive or deep links in unity here - https://docs.unity3d.com/Manual/enabling-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();
GetExtras() 函数
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;
}
获取属性函数
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;
}
我正在尝试制作一个 Unity 应用程序,其中 firebase 向 android 和 iOS 发送通知。但我想在有人点击通知时打开一个特定的场景。我不知道该怎么做。
我认为您正在寻找动态 link 之类的东西,这里有另一个名为动态 links 的 firebase 服务- https://firebase.google.com/docs/dynamic-links/unity/receive or deep links in unity here - https://docs.unity3d.com/Manual/enabling-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();
GetExtras() 函数
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;
}
获取属性函数
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;
}