有没有办法从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
答案 0 :(得分:19)
答案其实非常有趣。它是YES
和NO
。
您可以通过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之前,您将无法测试此解决方案,但文档明确指出这将得到支持。