Виявити версію 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.