swift - 关闭应用程序时如何使用动态快速操作[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)"
有什么建议么?
解决方案
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
是一种实际处理快捷方式并做你想做的事情的方法。您应该能够在这两种情况下使用相同的。
推荐阅读
- python - 使用 Peewee ORM 打开和关闭多个函数的连接
- excel - VBA宏选择复制循环
- database - Codeigniter 没有获得 ID 并且更新数据库不起作用
- reactjs - 如果我更改路线,获取请求将停止工作
- python - Django-如何在我的模板的嵌套 for 循环中显示来自类似对象的正确数据?
- c - 转换 C 代码删除明显的指针
- c++ - 如何将结构中的字段添加到数组中?
- nosql - 如何将 GraphQL 用于企业应用程序
- android - 如何在 Android Studio 中的完整 RecyclerView(不是项目)上实现向下滑动手势?
- tcl - 期望 - 如何为动态变量“发送用户”