【问题标题】:Detect user's watchOS version from iOS app从 iOS 应用检测用户的 watchOS 版本
【发布时间】: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
  • 有趣的想法,不幸的是,手表似乎有特殊处理,无法通过标准蓝牙方法获得
  • 你为什么不把 watchOS Deployment Target 限制为 5.0 呢?

标签: ios swift apple-watch watchos


【解决方案1】:

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

1.

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

【讨论】:

  • 这在 iOS 应用程序中运行时不起作用,只有在已安装的 watchOS 应用程序上运行时才有效
  • 啊,我没想到。对不起。如果您检查了 targetEnvironment,然后检查了可用的操作系统版本怎么办?如果 targetEnvironment 有 watchOS 目标。
  • 不确定我是否关注。您在哪里/如何检查目标环境?
  • 我之前没有真正使用过这个,但我在想像#if targetEnvironment(watchOS)这样的东西。如果 watchOS 甚至可以做到这一点,那么您可以在其中检查 watchOS 5 的版本。
  • 对不起,这不是我真正想要的。 #if targetEnvironment 是 watchOS,它需要在手表上运行。我正在寻找来自 iOS 的支票
猜你喜欢
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
  • 2012-06-25
  • 1970-01-01
  • 1970-01-01
  • 2012-04-17
  • 1970-01-01
  • 2014-02-14
相关资源
最近更新 更多