如何将目标内容标识符附加到Info.plist中的快捷方式?

问题描述 投票:2回答:1

[如果您的应用程序支持场景,那么当用户在跳板中长按您的应用程序图标并点击您的快捷菜单项之一时,该方法将在场景委托中调用:

  • windowScene(_:performActionFor:completionHandler:)

但是您的应用程序还支持多个窗口,运行时需要一种方法来了解哪个窗口场景的委托进行调用。

要回答这个问题,您的UIScene的activationConditions必须设置为一个UISceneActivationConditions对象,该对象的canActivateForTargetContentIdentifierPredicateprefersToActivateForTargetContentIdentifierPredicate适当地指定谓词。有问题的targetContentIdentifier是UIApplicationShortcutItem的属性;它只是一个字符串,例如"myShortcutIdentifier"

谓词的self 传入的targetContentIdentifier字符串,因此谓词将如下所示:

let pred = NSPredicate(format: "self == 'myShortcutIdentifier'")

到目前为止一切顺利(如https://developer.apple.com/videos/play/wwdc2019/259/中所述)。但是,如何将目标内容标识符附加到Info.plist中定义的静态UIApplicationShortcutItem上?

如果您的应用程序支持场景,则当用户在跳板中长按您的应用程序图标并点击您的快捷菜单项之一时,该方法将在场景委托中调用:windowScene(_:...

ios ios13
1个回答
0
投票
您可以根据UIApplicationShortcut​ItemTargetContentIdentifier在Info.plist中设置source

然后您可以在can上设置prefersUISceneActivationConditions案例。这会触发-[UIWindowSceneDelegate windowScene:performAction​ForShortcutItem:completionHandler:]上的UIWindowSceneDelegate方法。

© www.soinside.com 2019 - 2024. All rights reserved.