2016-12-19 10 views
1

샘플 시계 키트 앱 (Apple Watch + iPhone)을 제작 중입니다. 여기 내 애플 리케이션이 잘 동기화됩니다. 또한 WCSession에서 데이터 전송 (iPhone을 Apple Watch까지)을 사용하여 작업했습니다. 두 가지 모두 활성 상태 일 때 제대로 작동합니다. 그러나 비활성 상태 (백그라운드 상태, 절전 모드 또는 전경 상태) 인 경우 Applewatch로 데이터를 전송할 수 없습니다. 호출하지 않는 대리자 메서드입니다.AppleWatch를 백그라운드로 사용하거나 잠자기 모드로 사용할 때 iPhone에서 AppleWatch로 메시지를 보내려면 어떻게해야합니까?

- (void)applicationDidBecomeActive { 
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 
if ([WCSession isSupported]) { 
    WCSession *session = [WCSession defaultSession]; 
    session.delegate = self; 
    [session activateSession]; 
} 
} 

여기 내 위임 방법입니다.

- (void)session:(nonnull WCSession *)session didReceiveMessage:(nonnull NSDictionary<NSString *,id> *)message replyHandler:(nonnull void (^)(NSDictionary<NSString *,id> * __nonnull))replyHandler {} 

도와주세요.

+0

iWatch. 사용자가 인터페이스 중 하나와 상호 작용하는 동안에 만 실행되기 때문에 아이폰이 즉시 열 것이라고 예상해서는 안되지만 그 반대입니다. 몇 가지 예외가 있지만 이러한 예외는 iPhone에서 깨어나는 것을 포함하지 않습니다. iWatch와 상호 작용하거나 앱 기능을 약간 조정하려면 다른 방법을 찾아야합니다. – Tushar

답변

0

iOS 기기와 Apple 시계가 페어링 된 경우. 그런 다음 WCSession을 사용하여 메시지를 보낼 때 앱이 자동으로 깨어납니다.

0

다음 코드를 사용하여 문제가 해결되었습니다. 의 ViewController에서

:

// Sending data to iphone to applewatch 
WCSession *session = [WCSession defaultSession]; 
    NSError *error; 
    [session updateApplicationContext:@{@"counterValue":@"counter", @"userId":@"id"} error:&error]; 

애플 워치 (Interfacecontroller) 그런 식으로 만 작동하는 가정

//Receiving data in applewatch from iphone 
- (void) session:(nonnull WCSession*)session didReceiveApplicationContext:(nonnull NSDictionary<NSString * ,id> *)applicationContext { 
}