2016-08-03 8 views
0

WatchConnectivity과 약간 혼동 스럽습니다.iOS 앱이 시작될 때 Apple Watch 앱에서 데이터를 수신합니다.

iOS 앱에서 시계 앱으로 데이터를 전송할 수 있습니다. 그러나 iOS 앱이 시작되거나 활성화 될 때만 데이터를 보냅니다.

시계 앱이 iOS 앱의 데이터를 요청하도록하고 싶습니다. 시계 응용 프로그램은 시작할 때 정보를 요청해야합니다.

+1

iOS에서 watchOS까지'updateApplicationContext'를 사용하지 말고, watchOS 앱이 시작될 때 왜 데이터를 가져 오지요. 원하는대로 데이터를 변경할 수 있으며 watchOS 앱이 최신 데이터를 가져올 수 있습니다. –

답변

2

사용자 정보가 있으며 시계 응용 프로그램이 시작할 때이 정보를 요청해야합니다.

사용자가 시계를 보았을 때 데이터가 요청되고 수신 된 다음 앱에서 업데이트되는 동안 기다려야하는 이유는 무엇입니까?

사용자가 앱을 시작할 때 정보를 검색하도록 시계 응용 프로그램을 디자인하는 대신 keep your watch app up to date에 대한 다른 접근 방법을 고려해야합니다.

  • 는 watchOS이 들어, updateApplicationContext, which Ahmed mentioned 같은 배경에서 현재 세부 사항을 전송하는 다른 방법이 있습니다.

  • watchOS 3의 경우 새로 고침 작업을 사용하여 백그라운드에서 시계 앱을 업데이트 할 수도 있습니다. 어느 이러한 방식의

는 정보가 손에 이미 있는지 확인하므로 사용자는 자동으로 업데이트하는 시계 앱을 기다리는 감내하지 않습니다.

+0

나는 updateApplicationContext를 사용했다. 그러나 watch app는 사용자의 데이터를 요청해야한다. iOS 앱의 특정 이벤트 (로그 아웃 또는 로그인)가 발생했을 때 애플리케이션 컨텍스트를 업데이트하고 있습니다. 사실 저는 구조와 혼동합니다. 예를 들어 시계 연결을위한 싱글 톤 클래스를 구현했고 appdelegate에서 객체를 만듭니다. 이 시나리오에서 올바른 접근법입니까? – TheZipper

+0

주석은 관련없는 질문에 대한 질문을하는 곳이 아닙니다. 사용자가 로그인하거나 로그 아웃 할 때 전화기가 응용 프로그램 (사용자 데이터) 컨텍스트를 업데이트하면 왜 시계가 데이터를 요청해야합니까? 사용자가 로그인되어 있고 시계에 이미 해당 데이터가 있거나 사용자가 로그 아웃 한 상태이며 시계도이를 알고 있습니다. 시계가 휴대 전화에서 요청할 데이터는 무엇입니까? 질문에 대한 답변이 없으면 수정하고 구체적인 세부 정보를 추가해야합니다 (예 : 시계가 특별히 요청해야하는 항목을 설명하고, 코드를 표시하며, 예상했던대로 작동하지 않는 내용을 설명해야합니다). –

0

sendMessagelink to documentation 방법은 WCSession class의 일부일 수 있습니다. 이 메서드는 응답 핸들러를 사용합니다.

상대방으로부터 응답을 받기위한 응답 핸들러입니다. 응답을 수신하지 않으려면 nil을 지정하십시오.

iOS 앱이 데이터를 다시 보내는 데 사용하는 회신 처리기로 메시지를 보내 효과적으로 iOS 앱에 알릴 수 있습니다.

0

같은 문제가 발생했습니다. iOS 앱을 시작한 경우에만 데이터가 시계로 전송되었습니다. 회신 핸들러가있는 메시지를 세션의 activationDidCompleteWith - 메소드에서 iOS 앱에 전송하여 해결했습니다. 특정 메시지 나 회신을 보낼 필요가 없습니다. 메시지가 iOS 앱에 전송 된 후 updateApplicationContext가 데이터를 보내 데이터를 보냈습니다.

EDIT : iOS 측 세션은 시계의 첫 번째 데이터가 "도착 중"이므로 답변을 할 수없는 경우 활성화 된 것으로 보입니다.

관련 문제