ios - 我怎样才能让真正的苹果 watch 打开父应用程序

标签 ios xcode swift watchkit

我们有一个应用程序需要在 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/

相关文章:

ios - xcode 无法理解的异常

ios - 当我重新打开应用程序时 Swift admob 隐藏

xcode - Mac OS X SpriteKit 的替代品

iphone - 我如何知道何时可以安全地忽略 All Exceptions 断点上的 __cxa_throw?

swift - 从 NSManagedObject 中删除 Nil 值

ios - 使用 slider 选择 View 背景的颜色

ios - 如何在 CoreData iOS 中的实体中的同一索引处添加两个项目

ios - 如何使用 for-in-loop 在 CADisplayLink 中创建多个对象

iphone - 我将如何重新加载 View Controller 的 TableView 关闭另一个 View Controller 上的页面 curl 。

iPhone - removeObjectIdenticalTo 行为