为了支持应用程序图标上的快捷方式项,我们在SceneDelegate
中实现了以下方法:
func windowScene(_ windowScene: UIWindowScene, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void)
通过此类快捷方式项杀死并启动该应用程序时,不会调用此方法(它仅显示主屏幕)。但是,当应用程序在后台运行时,将调用此方法,并且一切都会按预期进行。
我还检查了AppDelegate
中的didFinishLaunchingWithOptions
,以查看launchingOptions
中是否有快捷方式项目,但它们是nil
。
答案 0 :(得分:1)
在中检查ShortcutItem
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
if let shortcutItem = connectionOptions.shortcutItem {
shortcutItemToProcess = shortcutItem
}
}
然后在
中处理它func sceneDidBecomeActive(_ scene: UIScene) {
if let shortcutItem = shortcutItemToProcess {
shortcutItemToProcess = nil
}
}