Откройте HomeKits X-HM:// URL-адрес

Я создаю приложение с HomeKit SDK, и я хотел бы добавить несертифицированный аксессуар программно. Моя цель - создать удобный и удобный процесс сопряжения, не имея распечатанного QR-кода или NFC-готового аксессуара. Я хотел бы передать контактный контакт / URL-адрес для сопряжения программным способом, чтобы пользователю не нужно было беспокоиться о кодах.

Я уже настроил HMAccessoryBrowser, и он находит аксессуар быстро и надежно. До сих пор у меня есть объект HMAccessory, а также действующая ссылка для сопряжения (пример: X-HM://123456789ABC) и я попробовал три способа, чтобы добавить аксессуар:

  1. Сгенерируйте QR-код с помощью URL-адреса и отсканируйте его с помощью встроенного приложения Camera или Home, которое работает очень хорошо. - Проблема: вам нужно второе устройство / распечатать QR-код для сканирования QR-кода.
  2. Используйте HMHome's addAccessory функция для непосредственного добавления HMAccessory. - Проблема: после принятия запроса с просьбой добавить устройство открывается приложение Home App и просит отсканировать QR-код или вручную выбрать устройство и ввести код. Это не имеет смысла для меня, если только я не сказал HomeKit, какой аксессуар он должен добавить, но он также делает это с аксессуарами HomeKit Accessory Simulator и также упоминается в этом посте.
  3. Откройте URL-адрес X-HM с помощью UIApplication.open(), - Проблема: также с разрешениями HomeKit, функция завершается с сообщением об ошибке:

-canOpenURL: сбой для URL: "X-HM://123456789ABC" - ошибка: "Операция не может быть завершена (ошибка OSStatus -10814.)"

Прежде чем предоставить доступ к моей Home Data, сообщение об ошибке было что-то вроде, у вас нет разрешения на открытие этого URL.

На мой взгляд, прямое открытие URL-адреса сопряжения кажется лучшим решением, если только для пользователя это не тот же процесс, что и при добавлении любого другого устройства HomeKit без необходимости сканирования QR-кода, но у меня заканчиваются идеи.

Я был бы признателен за любую идею, обходной путь или другой процесс, чтобы связать эту вещь, спасибо заранее!

0 ответов

Другие вопросы по тегам