objective-c - 如何从 Apple Watch 启动 iOS 应用程序?

标签 objective-c watchkit apple-watch

有什么方法可以从 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

最佳答案

这个答案其实很有趣。它是 YESNO

您可以通过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/

相关文章:

ios - 带有 Coredata 同步问题的 WatchKit 扩展

ios - getPlaceholderTemplateForComplication() 方法何时被调用?

ios - 在 Swift 中从 App 向 watchOS 发送消息

ios - 如何在 Xcode 中使用 watchkit 将动画 Gif 分配给 Wkinterfaceimage 直接运行它?

ios - 没有通信应用程序 -> watch 应用程序和 Apple Watch 上的应用程序安装失败 - iOS 9 Beta 5

ios - Swift 无法导入 Obj-C 模块?

ios - 如何从应用程序中识别 Enterprise(公司)iOS 设备?

ios - 试图将自定义 UIBarButtonItem 添加到 UIToolBar,但项目搞砸了

ios - NSFetchedResultsController 用于在 Apple Watch 上显示记录?

objective-c - 代码 : How to handle Space character in string?