从 iOS 应用检测用户的 watchOS 版本
Posted
技术标签:
【中文标题】从 iOS 应用检测用户的 watchOS 版本【英文标题】:Detect user's watchOS version from iOS app 【发布时间】:2020-02-13 18:13:07 【问题描述】:我有一个 ios 应用程序,其中有一些与手表相关的 iOS 应用程序设置。我只想在用户拥有与我的应用兼容的 Apple Watch 时向他们展示。
在 WatchConnectivity 中,我可以查询 WCSession 的 isPaired 属性以查看用户是否有手表,但我不知道如何确定 watchOS 版本(它需要 >5.0 才能使用我的应用程序)。
有没有办法从 iOS 应用中确定 watchOS 版本?
【问题讨论】:
我认为您无法从 iOS 查看 watchOS 版本。但是,您可以通过 iOS 应用在手表应用之间进行通信,以获取您需要的信息。 谢谢,但我仍然无法区分在 watchOS 4 上拥有手表但无法安装手表应用程序的用户与在 watchOS 5 上可以安装手表应用程序的用户之间的区别但没有 @Stephen 尝试从蓝牙获取你感兴趣的信息Link1Link2 有趣的想法,不幸的是,手表似乎有特殊处理,无法通过标准蓝牙方法获得 你为什么不把 watchOSDeployment Target
限制为 5.0 呢?
【参考方案1】:
这里有两种可能的解决方案。 1 号检查操作系统,如果我理解您已经知道的问题,那么 2 号检查操作系统版本,即 WatchOS 5.0 及更高版本。这就是我所做的,希望对您有所帮助。
1.
#if os(watchOS)
...your code
#endif
if #available(watchOS 5.0, *)
...your code
【讨论】:
这在 iOS 应用程序中运行时不起作用,只有在已安装的 watchOS 应用程序上运行时才有效 啊,我没想到。对不起。如果您检查了 targetEnvironment,然后检查了可用的操作系统版本怎么办?如果 targetEnvironment 有 watchOS 目标。 不确定我是否关注。您在哪里/如何检查目标环境? 我之前没有真正使用过这个,但我在想像#if targetEnvironment(watchOS)
这样的东西。如果 watchOS 甚至可以做到这一点,那么您可以在其中检查 watchOS 5 的版本。
对不起,这不是我真正想要的。 #if targetEnvironment 是 watchOS,它需要在手表上运行。我正在寻找来自 iOS 的支票以上是关于从 iOS 应用检测用户的 watchOS 版本的主要内容,如果未能解决你的问题,请参考以下文章