从另一个应用程序打开时,在 applicationWillTerminate 之后以首选状态打开应用程序?

Opening app after applicationWillTerminate in a preferred state when opening from another app?

我的应用目前可以从另一个应用打开。从其他应用程序传递的所有信息都在 application(application: UIApplication, openURL url... 中读取,应用程序状态将根据需要保留。

首次启动时 appDelegate 首先打开 didFinishLaunchingWithOptions,但是如果用户双击主页按钮并通过向上滑动终止应用程序,则会调用 applicationWillTerminate 并且应用程序是杀了。

当我的应用程序被杀死后从另一个应用程序启动时,该应用程序首先调用 didFinishLaunchingWithOptions 然后调用 application(application: UIApplication, openURL url...

如何确保应用程序知道 didFinishLaunchingWithOptions 方法中传递的是哪个 url?有没有办法事先而不是在 application(application: UIApplication, openURL url... 内确定?

是的,URL 应该在 launchOptions 字典中可用 如果 该应用程序是通过另一个应用程序的 URL 启动的:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let url = launchOptions?[UIApplicationLaunchOptionsKey.url] as? NSURL

}

如果您对 launchOptions 字典可能包含的所有内容感兴趣(它链接到您可以使用的所有键),请查看 application(_:didFinishLaunchingWithOptions:) 文档:

https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622921-application