提问人:Hussain Shabbir 提问时间:2/27/2015 最后编辑:Luca AngelettiHussain Shabbir 更新时间:4/10/2015 访问量:9166
如何从 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
答:
答案其实很有意思。它是 和 .YES
NO
您可以通过该方法在后台打开应用程序。如果应用程序被终止或后台,它将在后台启动应用程序。如果应用已经在前台,它只会调用它。openParentApplication:reply:
如果 iOS 应用尚未置于前台,则无法将其从监视扩展程序带到前台。这违反了苹果的政策。虽然您实际上可以在 iOS 模拟器中执行此操作,但 Apple 已确认您无法在设备上执行此操作或将解决方案提交到 App Store。有关详细信息,请参阅开发人员论坛上的这篇文章。
如果您需要将 iOS 应用程序带到前台,目前唯一可以部分执行此操作的方法是使用 Handoff API。这是《切换编程指南》的另一个链接。仔细阅读这两个文档后,您将确切地了解 Handoff 系统的工作原理。
若要实现,需要在监视扩展中添加 。然后,您需要在 iOS 应用中实现。不幸的是,在您拥有 Apple Watch 之前,您将无法测试此解决方案,但文档明确指出将支持此解决方案。WKInterfaceController
updateUserActivity:userInfo:webpageURL:
UIApplicationDelegate
application:continueUserActivity:restorationHandler:
评论
+ (BOOL)openParentApplication:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo, NSError *error)) reply; // launches containing iOS application on the phone. userInfo must be non-nil