Apple Watch,WatchKit Extension和主要应用程序

vit*_*lii 7 program-entry-point ios watchkit

有逻辑的主要应用程序,我们将应用程序扩展到Apple Watch.

添加目标xCode后,再创建2个应用程序:扩展代码和监视工具包应用程序.

问题:扩展程序中的代码如何重用已准备好的主要iOS应用程序的逻辑?扩展程序应用程序如何与主App通信并发送命令.

Ste*_*son 10

要与包含的iPhone应用程序通信,您可以使用

(BOOL)openParentApplication:(NSDictionary *)userInfo
                        reply:(void (^)(NSDictionary *replyInfo,
                                        NSError *error))reply
Run Code Online (Sandbox Code Playgroud)

在你的 WKInterfaceController

来自Apple Docs

使用此方法与包含的iOS应用程序进行通信.调用该方法会导致iOS在后台启动应用程序(根据需要)并调用application:handleWatchKitExtensionRequest:reply其app delegate 的:方法.该方法具有以下签名:

- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo
reply:(void(^)(NSDictionary *replyInfo))reply
Run Code Online (Sandbox Code Playgroud)

应用程序委托接收您传递给userInfo参数的字典,并使用它来处理您提出的任何请求.如果它提供了回复,WatchKit将执行您在此方法的reply参数中提供的块.