你不是幸运,因为当你写你的问题有没有在iOS版SDK这个API。三天前,2014年12月10日苹果公司发布了iOS 8.2 beta 2 SDK,其中有两个,对于这项任务很重要。
在WatchKit框架,WKInterfaceController
类
// Obj-C
+ (BOOL)openParentApplication:(NSDictionary *)userInfo
reply:(void (^)(NSDictionary *replyInfo,
NSError *error))reply
通过调用此方法的iOS将运行你的应用程序在后台应用程序的AppDelegate将收到此消息
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply.
这是在添加第二个方法iOS SDK Beta 2(根据此问题)在UIKit Framework中,UIApplicationDelegate
类。
可以使用的NSDictionary和回复组通信的关注应用和iOS应用。
例
在你WKInterfaceController
子
- (IBAction)callPhoneAppButtonTapped
{
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"text to display", @"key", nil];
[InterfaceController openParentApplication:dictionary reply:^(NSDictionary *replyInfo, NSError *error) {
NSLog(@"Reply received by Watch app: %@", replyInfo);
}];
}
,然后在您的iOS AppDelegate类
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply
{
NSLog(@"Request received by iOS app");
NSDictionary *dictionary = [[NSDictionary alloc] initWithObjectsAndKeys:@"your value to return to Apple Watch", @"key", nil];
reply(dictionary);
}
当您点击苹果表扣模拟器iPhone模拟器您的iOS应用将会启动,你应该能够在适当的地方看到NSLog。
注意
该解决方案适用于运送观看和iOS应用程序之间的对象。 但是,如果你打算传输更多的数据,获得的图像,文件等,你应该使用Shared app group
。您在Xcode项目文件中的Capabilities中设置共享应用程序组。 使用containerURLForSecurityApplicationGroupIdentifier
(NSFileManager
类)来获取共享组中文件的URL。
如果你想分享偏好initWithSuiteName
从NSUserDefaults
是你在找什么。
来源
2014-12-13 18:30:12
lvp
非常感谢您提供非常有趣的更新信息!我会尽快尝试!不幸的是,我还没有足够的声望来支持你的答案!对不起! – iVentis 2014-12-13 22:51:03
很酷,没问题:)它对你有用吗? – lvp 2014-12-13 23:39:17
我没有时间测试它!我会尽快告诉你;) – iVentis 2014-12-14 07:46:24