如何从Apple Watch启动iOS App?

时间:2015-02-27 08:57:52

标签: objective-c watchkit apple-watch

有没有办法从Apple Watch推出iOS应用程序?

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

Apple Watch Code

调用Inside 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代码

调用Inside Appdelegate.m

- (void) application:(UIApplication *) application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply

1 个答案:

答案 0 :(得分:19)

答案其实非常有趣。它是YESNO

您可以通过openParentApplication:reply:方法在后台打开该应用。如果应用程序终止或后台运行,它将在后台启动应用程序。只要它已经在前台,它就会调用该应用程序。

你不能将iOS应用程序从Watch Extension扩展到前台,如果它还没有预先设定的话。这违反了Apple的政策。虽然您可以在iOS模拟器中实际执行此操作,但Apple已确认您无法在设备上执行此操作或将解决方案提交到App Store。有关详细信息,请参阅开发论坛上的article

如果您需要将iOS应用程序置于前台,那么目前部分执行此操作的唯一方法是使用Handoff API。这是Handoff Programming Guide的另一个链接。一旦仔细阅读了这两个文档,您就会看到Handoff系统的确切工作方式。

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