Detecta la versión watchOS del usuario desde la aplicación iOS


13

Tengo una aplicación de iOS donde tengo algunas configuraciones en la aplicación de iOS relacionadas con el reloj. Solo quiero mostrarlos si el usuario tiene un Apple Watch compatible con mi aplicación.

En WatchConnectivity, puedo consultar la propiedad isPaired de WCSession para ver si el usuario tiene un reloj, pero no puedo entender cómo determinar la versión de watchOS (debe ser> 5.0 para usar mi aplicación).

¿Hay alguna manera de determinar la versión de watchOS desde la aplicación iOS?


No creo que puedas consultar la versión de watchOS desde iOS. Sin embargo, puede comunicarse entre la aplicación de reloj desde la aplicación de iOS para obtener la información que necesita.
Lei Zhang

Gracias, pero todavía no puedo distinguir la diferencia entre un usuario que tiene un reloj en watchOS 4 y no puede instalar la aplicación de reloj frente a un usuario en watchOS 5 que puede instalar la aplicación de reloj pero no lo ha hecho
Stephen

@Stephen intenta obtener de la información de bluetooth que te interesa Link1 Link2
George

idea interesante, desafortunadamente el reloj parece tener un manejo especial donde no está disponible a través de los métodos estándar de bluetooth
Stephen

¿Por qué no limitas el watchOS Deployment Targeta 5.0?
Starsky

Respuestas:


0

En realidad isWatchAppInstalledes la forma correcta de lidiar con este escenario.

Como dice la documentación:

El usuario puede elegir instalar solo un subconjunto de aplicaciones disponibles en Apple Watch. El valor de esta propiedad es verdadero cuando la aplicación Watch asociada con la aplicación iOS actual está instalada en el Apple Watch del usuario o falso cuando no está instalado.

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

La propiedad no mira dentro del paquete para ver si hay una aplicación Watch disponible. Solo volverá verdadero si la aplicación Watch está instalada en el Apple Watch actualmente emparejado. Si el usuario elimina la aplicación Watch del reloj, devolverá false.


Estoy buscando una manera de saber si son capaces de instalar la aplicación de reloj si no está instalada. Necesito distinguir si la versión de watchOS es compatible con mi mínimo
Stephen

En WatchKit, está el objeto WKInterfaceDevice, disponible en el lado de iOS y watchOS, que contiene información sobre el reloj emparejado.
jawadAli

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

has intentado eso?
jawadAli

1
WKInterfaceDevice solo se puede llamar en watchOS, no en iOS, consulte los documentos .
Reinhard Männer

-1

Aquí hay dos posibles soluciones. El número 1 verifica el sistema operativo que si entiendo su pregunta ya lo sabe, pero luego el 2 verifica la versión del sistema operativo que es WatchOS 5.0 y posterior. Esto es lo que he hecho, así que espero que te ayude.

1)

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

Esto no funciona cuando se ejecuta en una aplicación iOS, solo cuando ya está en una aplicación watchOS instalada
Stephen

Ahh, no pensé en eso. Lo siento. ¿Qué sucede si verificó el entorno de destino y luego verificó la versión disponible del sistema operativo? Si targetEnvironment tiene un objetivo watchOS.
117MasterChief96

No estoy seguro de seguir. ¿Dónde / cómo está comprobando el entorno de destino?
Stephen

Realmente no he usado esto antes, pero estaba pensando algo así #if targetEnvironment(watchOS). Si eso es posible con watchOS, y luego dentro de eso, puede verificar la versión de watchOS 5.
117MasterChief96

Lo siento, esto no es realmente lo que estoy pidiendo. #si targetEnvironment es watchOS, debería ejecutarse en el reloj. Estoy buscando un cheque de iOS
Stephen
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.