有逻辑的主要应用程序,我们将应用程序扩展到Apple Watch.
添加目标xCode后,再创建2个应用程序:扩展代码和监视工具包应用程序.
问题:扩展程序中的代码如何重用已准备好的主要iOS应用程序的逻辑?扩展程序应用程序如何与主App通信并发送命令.
解决方法
要与包含的iPhone应用程序通信,您可以使用
(BOOL)openParentApplication:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *replyInfo,NSError *error))reply
在你的WKInterfaceController中
来自Apple Docs
Use this method to communicate with your containing iOS app. Calling
the method causes iOS to launch the app in the background (as needed)
and call theapplication:handleWatchKitExtensionRequest:reply
: method
of its app delegate. That method has the following signature:
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply
The app delegate receives the dictionary you pass into the userInfo parameter and uses it to process whatever request you made. If it provides a reply,WatchKit executes the block you provided in the reply parameter of this method.