Откройте HomeKits X-HM:// URL-адрес
Я создаю приложение с HomeKit SDK, и я хотел бы добавить несертифицированный аксессуар программно. Моя цель - создать удобный и удобный процесс сопряжения, не имея распечатанного QR-кода или NFC-готового аксессуара. Я хотел бы передать контактный контакт / URL-адрес для сопряжения программным способом, чтобы пользователю не нужно было беспокоиться о кодах.
Я уже настроил HMAccessoryBrowser, и он находит аксессуар быстро и надежно. До сих пор у меня есть объект HMAccessory, а также действующая ссылка для сопряжения (пример: X-HM://123456789ABC
) и я попробовал три способа, чтобы добавить аксессуар:
- Сгенерируйте QR-код с помощью URL-адреса и отсканируйте его с помощью встроенного приложения Camera или Home, которое работает очень хорошо. - Проблема: вам нужно второе устройство / распечатать QR-код для сканирования QR-кода.
- Используйте HMHome's
addAccessory
функция для непосредственного добавления HMAccessory. - Проблема: после принятия запроса с просьбой добавить устройство открывается приложение Home App и просит отсканировать QR-код или вручную выбрать устройство и ввести код. Это не имеет смысла для меня, если только я не сказал HomeKit, какой аксессуар он должен добавить, но он также делает это с аксессуарами HomeKit Accessory Simulator и также упоминается в этом посте. - Откройте URL-адрес X-HM с помощью
UIApplication.open()
, - Проблема: также с разрешениями HomeKit, функция завершается с сообщением об ошибке:
-canOpenURL: сбой для URL: "X-HM://123456789ABC" - ошибка: "Операция не может быть завершена (ошибка OSStatus -10814.)"
Прежде чем предоставить доступ к моей Home Data
, сообщение об ошибке было что-то вроде, у вас нет разрешения на открытие этого URL.
На мой взгляд, прямое открытие URL-адреса сопряжения кажется лучшим решением, если только для пользователя это не тот же процесс, что и при добавлении любого другого устройства HomeKit без необходимости сканирования QR-кода, но у меня заканчиваются идеи.
Я был бы признателен за любую идею, обходной путь или другой процесс, чтобы связать эту вещь, спасибо заранее!