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

How to launch iOS App from Apple Watch?

提问人:Hussain Shabbir 提问时间:2/27/2015 最后编辑:Luca AngelettiHussain Shabbir 更新时间:4/10/2015 访问量:9166

问:

有没有办法从 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
Objective-C 手表套件 Apple-Watch

评论

0赞 Aadil Keshwani 2/27/2015
您可以使用以下命令在两个应用程序之间传递数据,但即使我尝试搜索,但在这里找不到安迪的答案+ (BOOL)openParentApplication:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo, NSError *error)) reply; // launches containing iOS application on the phone. userInfo must be non-nil
1赞 Hussain Shabbir 2/27/2015
是的,我能够传递数据,但我想使用 iwatch 中的上述 api 启动 iOS 应用程序
0赞 Aadil Keshwani 2/27/2015
我想它仍在开发中,我们需要等到他们添加相同的方法。目前,我们可用的方法非常有限,我相信他们很快就会添加它
0赞 Hussain Shabbir 2/27/2015
这是他们使用上述 api 提到相同的链接,但不起作用 github.com/NilStack?tab=repositories
0赞 Stephen Johnson 2/28/2015
我的猜测是您正在使用 Xcode 6.3 测试版。您应该使用 6.2 进行 Watch 开发。我正在使用这些 API,它在 6.2 中为我工作。

答:

22赞 cnoon 3/3/2015 #1

答案其实很有意思。它是 和 .YESNO

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

如果 iOS 应用尚未置于前台,则无法将其从监视扩展程序带到前台。这违反了苹果的政策。虽然您实际上可以在 iOS 模拟器中执行此操作,但 Apple 已确认您无法在设备上执行此操作或将解决方案提交到 App Store。有关详细信息,请参阅开发人员论坛上的这篇文章

如果您需要将 iOS 应用程序带到前台,目前唯一可以部分执行此操作的方法是使用 Handoff API。这是《切换编程指南》的另一个链接。仔细阅读这两个文档后,您将确切地了解 Handoff 系统的工作原理。

若要实现,需要在监视扩展中添加 。然后,您需要在 iOS 应用中实现。不幸的是,在您拥有 Apple Watch 之前,您将无法测试此解决方案,但文档明确指出将支持此解决方案。WKInterfaceControllerupdateUserActivity:userInfo:webpageURL:UIApplicationDelegateapplication:continueUserActivity:restorationHandler:

评论

1赞 Hussain Shabbir 3/3/2015
感谢您的回答,但是我如何使用 Handoff API 将 iOS 应用程序带到前台?你有什么示例代码可以做同样的事情吗?
0赞 cnoon 3/4/2015
嗨,@Hussain,我相应地更新了我的答案,以引导您完成将 Handoff 添加到您的 Watch 扩展程序和 iOS 应用程序的过程。
0赞 Hussain Shabbir 3/4/2015
谢谢cnoon,但在模拟器中,我可以测试吗?
1赞 cnoon 3/4/2015
不幸的是,你不能。您必须等到您拥有实际的设备才能像我们其他人一样进行测试。
1赞 Tejas Ardeshna 10/11/2017
我可以从 iPhone 打开手表应用程序@cnoon?