Erkennen Sie die watchOS-Version des Benutzers in der iOS-App

13

Ich habe eine iOS-App, in der ich einige Einstellungen in der iOS-App habe, die sich auf die Uhr beziehen. Ich möchte sie nur anzeigen, wenn der Benutzer eine Apple Watch hat, die mit meiner App kompatibel ist.

In WatchConnectivity kann ich die isPaired-Eigenschaft von WCSession abfragen, um festzustellen, ob der Benutzer über eine Uhr verfügt. Ich kann jedoch nicht herausfinden, wie die watchOS-Version ermittelt wird (für die Verwendung meiner App muss sie> 5.0 sein).

Gibt es eine Möglichkeit, die watchOS-Version über die iOS-App zu ermitteln?

Stephen
quelle
Ich glaube nicht, dass Sie die watchOS-Version von iOS aus überprüfen können. Sie können jedoch über die iOS-App zwischen der Watch-App kommunizieren, um die benötigten Informationen zu erhalten.
Lei Zhang
Vielen Dank, aber ich kann immer noch nicht den Unterschied zwischen einem Benutzer, der eine Uhr auf watchOS 4 hat und die Watch-App nicht installieren kann, und einem Benutzer auf watchOS 5, der die Watch-App installieren kann, aber nicht
Stephen,
@ Stephen versuchen, von Bluetooth-Informationen zu erhalten, die Sie interessieren Link1 Link2
George
interessante Idee, leider scheint die Uhr eine spezielle Handhabung zu haben, bei der sie nicht über die Standard-Bluetooth-Methoden verfügbar ist
Stephen
Warum beschränken Sie das watchOS nicht einfach auf Deployment Target5.0?
Starsky

Antworten:

0

Eigentlich isWatchAppInstalledist der richtige Weg, um mit diesem Szenario umzugehen.

Wie in der Dokumentation angegeben:

Der Benutzer kann nur eine Teilmenge der verfügbaren Apps auf der Apple Watch installieren. Der Wert dieser Eigenschaft ist true, wenn die der aktuellen iOS-App zugeordnete Watch-App auf der Apple Watch des Benutzers installiert ist, oder false, wenn sie nicht installiert ist.

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

Die Eigenschaft prüft nicht im Bundle, ob eine Watch-App verfügbar ist. Es wird nur true zurückgegeben, wenn die Watch-App auf der aktuell gekoppelten Apple Watch installiert ist. Wenn der Benutzer die Watch-App von der Watch löscht, wird false zurückgegeben.

jawadAli
quelle
Ich suche nach einer Möglichkeit, um festzustellen, ob sie die Watch-App installieren können, wenn sie nicht installiert ist. Ich muss unterscheiden, ob die watchOS-Version mit meinem Minimum kompatibel ist
Stephen
In WatchKit gibt es das WKInterfaceDevice-Objekt, das sowohl auf der iOS- als auch auf der watchOS-Seite verfügbar ist und Informationen zur gekoppelten Uhr enthält.
jawadAli
let watchOSVersion = WKInterfaceDevice.currentDevice().systemVersion print("WatchOS version: \(watchOSVersion)")
jawadAli
hast du das versucht
jawadAli
1
WKInterfaceDevice kann nur in watchOS aufgerufen werden, nicht in iOS (siehe Dokumentation) .
Reinhard Männer
-1

Hier sind zwei mögliche Lösungen. Nummer 1 sucht nach dem Betriebssystem, das Sie, wenn ich Ihre Frage verstehe, bereits kennen, aber 2 sucht nach der Betriebssystemversion WatchOS 5.0 und höher. Dies ist, was ich getan habe, also hoffe ich, dass es Ihnen hilft.

1.

#if os(watchOS)
    ...your code          
#endif
  1. if #available(watchOS 5.0, *) {
        ...your code
    }
117MasterChief96
quelle
Dies funktioniert nicht, wenn es in einer iOS-App ausgeführt wird, sondern nur, wenn es bereits in einer installierten watchOS-App ausgeführt wird
Stephen,
Ahh, darüber habe ich nicht nachgedacht. Es tut uns leid. Was ist, wenn Sie die targetEnvironment und dann die verfügbare Betriebssystemversion überprüft haben? Wenn targetEnvironment ein watchOS-Ziel hat.
117MasterChief96
Ich bin mir nicht sicher, ob ich folge. Wo / wie überprüfen Sie die Zielumgebung?
Stephen
Ich habe das vorher nicht wirklich benutzt, aber ich dachte so etwas #if targetEnvironment(watchOS). Wenn das mit watchOS überhaupt möglich ist, können Sie innerhalb dessen die Version für watchOS 5 überprüfen.
117MasterChief96
Entschuldigung, das ist nicht wirklich das, wonach ich frage. #wenn targetEnvironment watchOS ist, muss es auf der Uhr ausgeführt werden. Ich suche einen Scheck von iOS
Stephen