从iOS应用检测用户的watchOS版本


13

我有一个iOS应用程序,我在iOS应用程序中有一些与手表相关的设置。我只想显示给用户显示与我的应用程序兼容的Apple Watch。

在WatchConnectivity中,我可以查询WCSession的isPaired属性以查看用户是否有手表,但是我不知道如何确定watchOS版本(要使用我的应用,该版本必须大于5.0)。

有没有办法从iOS应用程序确定watchOS版本?


我认为您无法从iOS查看watchOS版本。但是,您可以在iOS应用程序的watch应用程序之间进行通信,以获取所需的信息。
张磊

谢谢,但是我仍然无法说出在watchOS 4上拥有手表但无法安装手表应用程序的用户与在watchOS 5上能够安装手表应用程序但尚未安装手表的用户之间的区别
Stephen

@Stephen尝试从蓝牙信息中获取您对Link1 Link2
George

一个有趣的主意,不幸的是,该手表似乎具有特殊的处理方式,无法通过标准的蓝牙方法获得
Stephen

您为什么不只将watchOS限制Deployment Target为5.0?
Starsky

Answers:


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中,有一个WKInterfaceDevice对象,在iOS和watchOS上都可用,其中包含有关已配对手表的信息。
jawadAli

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

你尝试过吗?
jawadAli

1
WKInterfaceDevice只能在watchOS中调用,而不能在iOS中调用,请参阅docs
ReinhardMänner

-1

这是两个可能的解决方案。1号检查操作系统,如果我理解您的问题,您已经知道,但是2号检查操作系统的版本是WatchOS 5.0及更高版本。这是我所做的,希望对您有所帮助。

1。

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

在iOS应用程序中运行时,此功能不起作用,仅当已安装的watchOS应用程序中已运行时
Stephen

啊,我没想到。抱歉。如果您检查了targetEnvironment,然后检查了可用的OS版本,该怎么办?如果targetEnvironment具有watchOS目标。
117MasterChief96

不确定我是否遵循。您在哪里/如何检查targetEnvironment?
斯蒂芬,

我以前还没有真正使用过,但是我在想类似的东西#if targetEnvironment(watchOS)。如果使用watchOS甚至可以实现,则可以在其中检查watchOS 5的版本
。– 117MasterChief96

抱歉,这不是我真正要的。#如果targetEnvironment是watchOS,则它将需要在watch上运行。我正在寻找iOS上的支票
Stephen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.