에서 새로 고침 시계 앱. 내가 오늘 시계 OS 프레임 워크 장난 시작과 함께 빠른 응용 프로그램을 던져 싶었지만, 몇 가지 질문에왔다 시계
난 그냥 현재의 배터리 %를 보여줍니다 iOS 앱뿐만 아니라 배터리의 상태를했다. 나는 그 시계에 그것을 보여주고 싶었다. 시계 응용 프로그램이 활성화되어있는 동안 나는 완전히, 다음을 열고 iOS 앱을 닫을 때시계 앱을 업데이트 할 수있는 유일한 시간이다. iOS 앱을 연 후에 시계 앱을 열면 시계 앱이 업데이트되도록 허용하려면 어떻게해야하나요?
이런 종류의
는 숫자 2와 함께 간다하지만 백그라운드에서 된 후 어떻게 내가, 시계 앱이 iOS 앱에서 정보를 가져올 수 있나요? 예를 들어, iOS 앱이 백그라운드에서 실행 중이며 iOS 앱을 포 그라운드로 열지 않고 배터리를 가져오고 싶다고 가정 해 보겠습니다.
나는이 설정 방법에 대한 몇 가지 측면두기 - viewDidLoad
방법에 iOS 앱 내에서
if ([WCSession isSupported]) {
wcSession = [WCSession defaultSession];
wcSession.delegate = self;
[wcSession activateSession];
}
그런 다음 실제 배터리 % 및 상태를 업데이트하려면 내 메소드를 호출하십시오. 그 방법 내에서, 나는 시계에 정보를 통해 전송하는이 있습니다
NSDictionary *message = @{
@"message" : [NSString stringWithFormat:@"%@", [numberFormatter stringFromNumber:levelObj]],
@"message_2" : [NSString stringWithFormat:@"%ld",(long)[UIDevice currentDevice].batteryState],
};
[wcSession sendMessage:message replyHandler:nil errorHandler:^(NSError * _Nonnull error) {
NSLog(@"%@", error.localizedDescription);
}];
나는 또한 viewDidAppear에서이 같은 방법으로 전화를, 그래서의 상쾌한 할 수 있도록 완전히 응용 프로그램을 다시 시작하지 않아도 시계 반대편.
시계면에는 iOS 측과 동일한 활성화 방법과 시계 앱이 iOS 측에서받는 것을 처리하는 방법이있는 viewWillActivate
방법이 있습니다. 하지만 iOS 앱을 완전히 다시 시작할 때만 업데이트됩니다.
- (void)session:(WCSession *)session didReceiveMessage:(NSDictionary<NSString *,id> *)message {
NSLog(@"Message recieved!");
[_batteryLevelLabelW setText:message[@"message"]];
}
또한 배터리 상태 메시지를 처리하는 코드가 약간 있습니다.
가 나는 데 도움이되는 정보의 좋은 금액을 준 바랍니다. documentation 따르면
답변 해 주셔서 감사합니다. iOS 앱이 아직 열리지 않았다면 어떨까요? 어떻게 그것이 상쾌하게 될 것이고,'isReachable'이 참일 때 watch app에 보내질 것입니다. – Michael
@Michael ios 앱이 아직 열리지 않았다면 배터리 잔량을 어떻게 얻으실 건가요? – abjurato
그건 나쁘다. 그 말을 다르게 바꾸어야합니다. 시계 앱이 정보를 요청하는 메시지를 보내면 배터리 수준을 새로 고치는 방법이 있습니까? 아니면 iOS를 먼저 열어야합니까? – Michael