我们有一个应用程序需要在 Apple Watch 上显示内容,然后按下打开父应用程序并显示共享 View 以进行共享。这在 Xcode 6.3 和 Simulator 8.3 上仍然有效,但在 watch 硬件上这个功能被破坏了。其他一切正常,但父应用程序不会打开,除非您从手机手动打开它。代码简单
从 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")!)
}
}
编辑:请注意,使用实际硬件可以实现此功能,正如您从 watch 启动相机应用程序时所看到的那样。你点击 watch 上的相机图标,手机上的相机就会打开。为什么 Apple 会将我们的应用程序锁定在真正的硬件上?
最佳答案
WatchKit 中没有方法可以从 Watch 在前台打开 iPhone 应用程序(Handoff 除外)。虽然您可以在模拟器中执行此操作,但实际硬件不支持它。这就是您看到此行为的原因。
关于ios - 我怎样才能让真正的苹果 watch 打开父应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29860469/