iOS 앱에서 사용자의 watchOS 버전 감지


13

시계와 관련된 iOS 앱의 일부 설정이있는 iOS 앱이 있습니다. 사용자에게 내 앱과 호환되는 Apple Watch가있는 경우에만 표시하고 싶습니다.

WatchConnectivity에서 WCSession의 isPaired 속성을 쿼리하여 사용자에게 시계가 있는지 확인할 수 있지만 watchOS 버전을 확인하는 방법을 알 수는 없습니다 (앱을 사용하려면> 5.0이어야 함).

iOS 앱에서 watchOS 버전을 확인하는 방법이 있습니까?


iOS에서 watchOS 버전을 확인할 수 있다고 생각하지 않습니다. 그러나 iOS 앱의 시계 앱간에 통신하여 필요한 정보를 얻을 수 있습니다.
Lei Zhang

고맙지 만 watchOS 4에 시계를 가지고 있고 watch 앱을 설치할 수 없지만 watch 앱을 설치할 수는 있지만 watchOS 5에 설치하지 않은 사용자의 차이점을 여전히 알 수는 없습니다
Stephen

@Stephen은 당신이 관심이있는 블루투스 정보를 얻으려고 시도합니다 Link1 Link2
George

재미있는 아이디어, 불행히도이 시계는 표준 블루투스 방식으로는 사용할 수없는 특별한 처리를하는 것 같습니다
Stephen

왜 watchOS Deployment Target를 5.0으로 제한하지 않습니까?
Starsky

답변:


0

실제로이 isWatchAppInstalled시나리오를 처리하는 올바른 방법입니다.

설명서에 따르면

사용자는 Apple Watch에 사용 가능한 일부 응용 프로그램 만 설치하도록 선택할 수 있습니다. 이 속성의 값은 현재 iOS 앱과 연결된 Watch 앱이 사용자의 Apple Watch에 설치되어 있으면 true이고, 설치되어 있지 않으면 false입니다.

https://developer.apple.com/documentation/watchconnectivity/wcsession/1615623-iswatchappinstalled

이 속성은 번들 내부를 조사하여 Watch 앱을 사용할 수 있는지 확인하지 않습니다. Watch 앱이 현재 페어링 된 Apple Watch에 설치된 경우에만 true를 반환합니다. 사용자가 시계에서 Watch App을 삭제하면 false가 반환됩니다.


시계 앱이 설치되어 있지 않은 경우 시계 앱을 설치할 수 있는지 확인하는 방법을 찾고 있습니다. watchOS 버전이 최소 버전과 호환되는지 구별해야합니다
Stephen

WatchKit에는 iOS 및 watchOS 측 모두에서 사용할 수있는 WKInterfaceDevice 객체가 있으며 여기에는 페어링 된 시계에 대한 정보가 포함됩니다.
jawadAli

let watchOSVersion = WKInterfaceDevice.currentDevice().systemVersion print("WatchOS version: \(watchOSVersion)")
jawadAli

당신은 그것을 시도 했습니까?
jawadAli

1
WKInterfaceDevice는 iOS가 아닌 watchOS에서만 호출 할 수 있습니다 ( docs 참조) .
라인 하르트 마너

-1

두 가지 가능한 솔루션이 있습니다. 1 번은 OS를 확인합니다. 귀하의 질문을 이미 이해하면 2는 WatchOS 5.0 이상인 OS 버전을 확인합니다. 이것이 내가 한 일이므로 도움이되기를 바랍니다.

1.

#if os(watchOS)
    ...your code          
#endif
  1. if #available(watchOS 5.0, *) {
        ...your code
    }

iOS 앱에서 실행할 때는 작동하지 않으며 이미 설치된 watchOS 앱에서만 작동합니다.
Stephen

아, 나는 그것에 대해 생각하지 않았다. 죄송합니다. targetEnvironment를 확인한 다음 사용 가능한 OS 버전을 확인하면 어떻게됩니까? targetEnvironment에 watchOS 대상이있는 경우
117MasterChief96

확실하지 않습니다. 대상 환경을 어디서 / 어떻게 확인합니까?
Stephen

나는 전에 이것을 실제로 사용하지는 않았지만 같은 것을 생각하고있었습니다 #if targetEnvironment(watchOS). watchOS로 가능하다면, 그 내부에서 watchOS 5의 버전을 확인할 수 있습니다.
117MasterChief96

미안 이것은 내가 정말로 요구하는 것이 아닙니다. # 대상 환경이 watchOS 인 경우 시계에서 실행 중이어야합니다. iOS에서 수표를 찾고 있습니다
Stephen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.