我怎样才能让真正的苹果手表打开父应用程序

How can I get the REAL apple watch to open parent application

我们有一个应用程序需要在 Apple Watch 上显示内容,然后按下打开父应用程序并显示共享视图以进行共享。这在 Xcode 6.3 和 Simulator 8.3 上仍然有效,但在手表硬件上此功能已损坏。其他一切正常,但父应用程序将无法打开,除非您从 phone 手动打开它。代码简单

从 Apple Watch 请求父应用程序

    WKInterfaceController.openParentApplication(["SiteName": "DS"],
        reply: { (replyInfo, error) -> Void in
        NSLog("Reply: \(replyInfo)")
    })

然后,在父应用中使用这个发送成功。这不是在实际硬件中调用的,而是使用模拟器!

    func application(application: UIApplication,
    handleWatchKitExtensionRequest userInfo: [NSObject : AnyObject]?,
    reply: (([NSObject : AnyObject]!) -> Void)!) {

        if let userInfo = userInfo, request = userInfo["SiteName"] as? String {
            let siteName = userInfo["SiteName"] as? String
            reply(["Message":"Received launch request from \(siteName)"])
            UIApplication.sharedApplication().openURL(NSURL(string: "DSExtension://more")!)
        }

    }

编辑:请注意,使用实际硬件可以实现此功能,正如您从手表启动相机应用程序时所看到的那样。您点击手表上的相机图标,phone 上的相机将打开。为什么 Apple 会将我们的应用程序锁定在真正的硬件上?

WatchKit 中没有从 Watch(Handoff 除外)在前台打开 iPhone 应用程序的方法。虽然您可以在模拟器中执行此操作,但实际硬件不支持它。这就是您看到此行为的原因。