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.