你不是幸運,因爲當你寫你的問題有沒有在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