在 c# 中使用 unity 在简历上重新启动应用程序

Restart the application on resume using unity in c#

我目前正在为 android 和 ios 平台开发统一应用程序。我已经使用本机编码分别在平台中实现了深度 links。我现在遇到的问题是,如果应用程序是第一次启动 activity 而没有恢复,那么深度 linking 在 android 和 ios 设备上都能很好地工作从最近的历史来看。如果应用程序被最小化,然后如果在网页上单击深度 link,则应用程序会简单地恢复,但不会传递深度 link 数据。我知道这是因为我在 void Start() 方法中调用了深度 linking 方法。我试图获取布尔值以检查 activity 中的数据并重新加载 void Update() 方法中的深层 linking 部分。但它不起作用。

我尝试了 google 几个小时来寻求解决方案。剩下的唯一选择是在应用程序恢复后重新启动应用程序,这样整个事情就会 运行 从头开始​​,因此深度 linking 将在其中工作。

我尝试在 info.plist 中添加 'Application does not run in background' 属性 对于 ios.It 有效,但我不能为 android 添加 属性。

我在 mac 上使用 unity 5.3.1f1,函数 void OnApplicationPause void OnApplicationFocus 都无法在其上运行。我手动调试了代码,它没有调用函数。

如果有人可以让我知道是否有统一的方法或 android 可以实现我正在尝试的方法,那将是一个非常大的帮助。谢谢

OnApplicationPauseOnApplicationFocus 是执行此操作的最佳和推荐方法。 OnApplicationPauseOnApplicationFocus 没有在 Android 上调用,因为您的一些脚本中可能有 Application.runInBackground删除 如果你有它们。

此外,要调用 OnApplicationPauseOnApplicationFocus,您必须继承自 MonoBehavior。您的脚本应如下所示:

public class ExampleClass : MonoBehaviour {

    void OnApplicationPause(bool pauseStatus) {

    }

    void OnApplicationFocus(bool focusStatus) {

    }
}

而不是:

public class ExampleClass : OTHERCLASS{

    void OnApplicationPause(bool pauseStatus) {

    }

    void OnApplicationFocus(bool focusStatus) {

    }
}

或:

public class ExampleClass {

    void OnApplicationPause(bool pauseStatus) {

    }

    void OnApplicationFocus(bool focusStatus) {

    }
}

如果这不能解决您的问题,那么这可能是一个错误。将 unity 从 5.3.1f1 更新为 5.3.3,因为这是最新版本,可能会解决您的问题。