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

How to launch iOS App from Apple Watch?

有什么方法可以从 Apple Watch 启动 iOS 应用程序吗?

编辑:- 尝试同时使用下面的 api 但不起作用:-

Apple 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 APIs. Here is another link to the Handoff Programming Guide。仔细阅读这两个文档后,您将准确了解 Handoff 系统的工作原理。

要实施,您需要在 Watch Extension 中添加 WKInterfaceController updateUserActivity:userInfo:webpageURL:。然后,您需要在 iOS 应用中实施 UIApplicationDelegate application:continueUserActivity:restorationHandler:。不幸的是,在您拥有 Apple Watch 之前,您将无法测试此解决方案,但文档明确说明将支持此解决方案。