【问题标题】:How to use dynamic quick action when app is closed [swift]关闭应用程序时如何使用动态快速操作[swift]
【发布时间】:2021-01-23 23:44:38
【问题描述】:

如何在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。如果不是,则需要在应用启动时检查didFinishLaunchingWithOptionswillFinishLaunchingWithOptions中的快捷方式。快捷方式项将在启动项中。
  • 非常感谢您的快速答复。恐怕我太笨了,无法在 didfinishlaunchingwithoptions 中检查快捷方式
  • 作为答案添加了一个例子。

标签: swift dynamic shortcut


【解决方案1】:

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 是一种实际处理快捷方式并执行您想要的操作的方法。您应该能够在这两种情况下使用相同的。

【讨论】:

  • 再次感谢您。似乎有道理,但到目前为止它没有做任何事情。
  • 很难说为什么不知道你做了什么。另一件事是,如果你有一个 SceneDelete 它应该去那里。
  • 不处理 SceneDelegate 中的快捷方式是错误的。你是我的英雄!
  • 感谢您的回答,正是我想要的!
猜你喜欢
  • 1970-01-01
  • 2018-12-20
  • 2017-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-29
  • 2019-08-28
相关资源
最近更新 更多