应用程序图标上的快捷方式项不适用于 iOS 13

Posted

技术标签:

【中文标题】应用程序图标上的快捷方式项不适用于 iOS 13【英文标题】:Shortcut item on app icon not working with iOS 13 【发布时间】:2019-09-27 12:36:26 【问题描述】:

为了支持应用图标上的快捷方式,我们在SceneDelegate 中实现了以下方法:

func windowScene(_ windowScene: UIWindowScene, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void)

当应用程序被杀死并通过这样的快捷方式启动时,不会调用此方法(它只是显示主屏幕)。但是,当应用程序在后台运行时,会调用此方法,一切都会按预期运行。

我还检查了didFinishLaunchingWithOptions 中的AppDelegate 以查看launchingOptions 中是否有快捷方式,但它们是nil

【问题讨论】:

我看到了同样的行为。我隐约记得看到一些关于在应用程序强制退出后启动时未恢复状态的声明。某种安全机制。这可能是相关的。我看看能不能找到那句话。 对我来说同样的问题 【参考方案1】:

检查shortcutItem in

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
    

【讨论】:

以上是关于应用程序图标上的快捷方式项不适用于 iOS 13的主要内容,如果未能解决你的问题,请参考以下文章

主屏幕应用程序快捷方式不适用于 android。未安装应用程序

ios16桌面图标转盘效果

以编程方式访问 iOS 上的应用程序图标

为啥点击事件不适用于 iOS 上的 li 元素?

BarTintColor 不适用于 Xamarin 中 iOS 13 中的 PrefersLargeTitles

Ctrl + Space 不适用于 Eclipse 上的内容辅助