ios 10 中的 Sirikit 和父应用程序通信:Handoff

Sirikit and parent app communication in ios 10 : Handoff

我正在使用 Sirikit 与我的支付域应用程序集成,我需要在其中与该应用程序进行交互。我阅读了 Apple 文档,他们要求使用通用框架。 是否可以使用切换?如果是那么怎么办? 我如何从 sirikit 调用父应用程序中的另一个 viewController?

非常感谢您的帮助。谢谢

勾选SiriKit Programming Guide,

要使用切换,您可以使用 NSUserActivity 对象创建意图响应对象。在创建 NSUserActivity 对象时,将 userInfo 属性 分配给您想要的适当对象,

let userActivity = NSUserActivity()
userActivity.userInfo = ["myKey": myAnyObject]

您将在父应用程序 AppDelegate 中获得此 NSUserActivity 对象,

optional public func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: ([AnyObject]?) -> Swift.Void) -> Bool

在这里你可以获得 userInfo 对象,你可以根据你的要求进行比较并调用适当的 viewController.

每个用户 activity 对象都需要一个类型,我们需要在

中定义这些类型

info.plist of the application

例如。

let userActivity = NSUserActivity(activityType: "uaType")
userActivity.title = "uaTitle"
userActivity.userInfo = ["uaKey": "uaValue"]

您现在可以按如下方式在 AppDelegate 中访问此 activity 对象

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {

        switch userActivity.activityType {
        case "uaType": 
        //Write your logic to access uaKey & uaValue here
        return true
        default: return false
        }
}