有什么方法可以从 Apple Watch 启动 iOS 应用程序?
编辑:- 尝试使用下面的两个 api 但不起作用:-
苹果 watch 代码
调用内部interfaceController.m
+ (BOOL)openParentApplication:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo, NSError *error)) reply; // launches containing iOS application on the phone. userInfo must be non-nil
iOS 代码
在 Appdelegate.m 内部调用
- (void) application:(UIApplication *) application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply
最佳答案
这个答案其实很有趣。它是 YES
和 NO
。
您可以通过openParentApplication:reply:
方法在后台打开应用程序。如果它被终止或后台运行,这将在后台启动该应用程序。如果它已经在前台,它只会调用该应用程序。
您不能将 iOS 应用程序从 Watch Extension 带到前台,如果它还没有前台。这违反了 Apple 的政策。虽然您实际上可以在 iOS 模拟器中执行此操作,但 Apple 已确认您不能在设备上执行此操作或将解决方案提交到 App Store。看这个article在开发论坛上获取更多信息。
如果您需要将 iOS 应用程序带到前台,目前您可以部分执行此操作的唯一方法是使用 Handoff蜜蜂。这是 Handoff Programming Guide 的另一个链接.仔细阅读这两个文档后,您将准确了解 Handoff 系统的工作原理。
要实现,您需要在 Watch Extension 中添加 WKInterfaceController
updateUserActivity:userInfo:webpageURL:
。然后,您需要在您的 iOS 应用中实现 UIApplicationDelegate
application:continueUserActivity:restorationHandler:
。不幸的是,在您拥有 Apple Watch 之前,您将无法测试此解决方案,但文档明确指出将支持此解决方案。
关于objective-c - 如何从 Apple Watch 启动 iOS 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28760986/