Watch 응용 프로그램과 iPhone 응용 프로그램 사이의 값 전송

1570 단어
Apple Watch       -----------»      iPhone
[WKInterfaceController openParentApplication:@{@"type":@"song", @"para":@{@"channelID":channelID}} reply:^(NSDictionary *replyInfo, NSError *error) {
        if(replyInfo){
            //  iPhone 
            NSArray *array  = [NSKeyedUnarchiver unarchiveObjectWithData:[replyInfo objectForKey:@"songs"]];     
        }
    }];

이 방법은 WatchKit에서 아이폰 주체를 호출하는 인터페이스로 대응하는 것은 아이폰 측의 AppDelegate에서 실현해야 한다.
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void(^)(NSDictionary *replyInfo))reply NS_AVAILABLE_IOS(8_2);

*ios8.2+를 주의해야 이 방법이 있습니다.
iPhone       ---------------»           apple watch
#pragma mark - WatchKit Data
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo 
        reply:(void(^)(NSDictionary *replyInfo))reply {
    NSString *type = userInfo[@"type"];
    NSDictionary *para = userInfo[@"para"];
    
    NSDictionary *response = nil;
    if ([type isEqualToString:@"song"])
    {
        //  response = @{@"songs":@"11111"};
        NSArray *songArray = [NSArray arrayWithObjects: MySong1, Mysong2, nil];// Mysong  
        respone = @{@"songs":[NSKeyedArchiver archivedDataWithRootObject:songArray]};
    }
    reply(respone);
}

*** * 주의 ***
이 데이터는 정렬할 수 없는 경우 정렬할 수 있는 처리를 해야 합니다.데이터 압축 파일과 파일은 대응해야 한다.

좋은 웹페이지 즐겨찾기