首页 > 解决方案 > 关闭应用程序时如何使用动态快速操作[swift]

问题描述

如何在swift中使用动态快速动作?如果应用程序处于多任务处理状态,我可以触发我的方法。但如果应用程序没有在后台运行,它就不起作用。我正在 applicationWillResignActive / sceneWillResignActive 中设置我的快速操作。我正在处理我的方法:“func application(_ application:UIApplication,performActionFor shortcutItem:UIApplicationShortcutItem,completionHandler:@escaping(Bool)-> Void)”和
“func windowScene(_ windowScene:UIWindowScene,performActionFor shortcutItem:UIApplicationShortcutItem,completionHandler: @escaping (Bool) -> Void)"

有什么建议么?

标签: swiftdynamicshortcut

解决方案


performActionFor 方法仅在应用运行时调用(在后台0。如果不是,则需要在应用启动时在 didFinishLaunchingWithOptions 或 willFinishLaunchingWithOptions 中检查快捷方式。快捷方式项将在启动项中。

像这样的东西:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    if let shotcutItem = launchOptions?[UIApplication.LaunchOptionsKey.shortcutItem] as? UIApplicationShortcutItem{
        handleShortcutItem(shortcutItem)
    }

    return true
}

显然,这handleShortcutItem是一种实际处理快捷方式并做你想做的事情的方法。您应该能够在这两种情况下使用相同的。


推荐阅读