Виявити версію watchOS користувача через додаток iOS


13

У мене є додаток для iOS, де в додатку iOS є деякі налаштування, пов’язані з годинником. Я хочу лише їх показати, якщо у користувача є Apple Watch, сумісний з моїм додатком.

У WatchConnectivity я можу запитати властивість isPaired WCSession, щоб побачити, чи є у користувача годинник, але я не можу зрозуміти, як визначити версію watchOS (для використання мого додатка потрібно> 5,0).

Чи є спосіб визначити версію watchOS за допомогою програми iOS?


Я не думаю, що ви можете перевірити версію watchOS від iOS. Однак ви можете спілкуватися між додатком для перегляду з програми iOS, щоб отримати необхідну інформацію.
Lei Zhang

Дякую, але я все ще не можу визначити різницю між користувачем, який має годинник на watchOS 4 і не може встановити додаток для перегляду проти користувача на watchOS 5, який може встановити додаток для годин, але цього не зробив
Stephen

@Stephen спробуйте отримати інформацію про bluetooth, яка вас цікавить Link1 Link2
Джордж

Цікава ідея, на жаль, годинник, мабуть, має спеціальну обробку, коли це недоступно за допомогою стандартних методів Bluetooth
Stephen

Чому ви просто не обмежите годинник Deployment Targetна 5.0?
Старський

Відповіді:


0

Насправді isWatchAppInstalledце правильний спосіб впоратися з цим сценарієм.

Як зазначено в документації:

Користувач може вибрати інсталювати лише підмножину доступних програм на Apple Watch. Значення цього властивості є істинним, коли додаток Watch, пов’язане з поточним додатком iOS, встановлено на Apple Watch користувача, або false, коли воно не встановлено.

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

Властивість не заглядає в комплект, щоб побачити, чи доступна програма Watch. Він повернеться істиною лише в тому випадку, якщо додаток Watch буде встановлено на Apple Watch. Якщо користувач видалить додаток Watch з годинника, він повернеться помилковим.


Я шукаю спосіб сказати, чи здатні вони встановити додаток для перегляду, якщо він не встановлений. Мені потрібно розрізнити, чи сумісна версія watchOS з моїм мінімумом
Стівен

У WatchKit є об'єкт WKInterfaceDevice, доступний як на iOS, так і на стороні watchOS, який містить інформацію про парний годинник.
jawadAli

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

ви пробували це?
jawadAli

1
WKInterfaceDevice можна викликати лише в watchOS, а не в iOS, дивіться документи .
Рейнхард Маннер

-1

Ось два можливі рішення. Число 1 перевіряє ОС, що, якщо я розумію ваше питання, ви вже знаєте, але потім 2 перевіряє на версію ОС, яка є WatchOS 5.0 і пізнішої версії. Це я зробив, тож сподіваюся, що це допоможе тобі.

1.

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

Це не працює під час роботи в додатку для iOS, лише коли вже встановлено додаток
Stephen

Ах, я про це не думав. Вибачте. Що робити, якщо ви перевірили цільове середовище, а потім перевірите доступну версію ОС? Якщо у targetEnvironment є ціль watchOS.
117МастерШеф9696

Не впевнений, що я слідую. Де / як ви перевіряєте цільове оточення?
Стівен

Я раніше цього не використовував, але думав про щось подібне #if targetEnvironment(watchOS). Якщо це можливо навіть з watchOS, а потім всередині цього ви можете перевірити версію для watchOS 5.
117MasterCentist96

Вибачте, це насправді не те, про що я прошу. #if targetElvironment є watchOS, його потрібно було б працювати на годиннику. Я шукаю чек від iOS
Stephen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.