Управление пользователями

Пользователь, создающий дом, является администратором для дома и может выполнить все операции включая добавление гостевых пользователей в дом. Любой пользователь (HMUser) то, что администратор добавляет к дому, ограничило полномочия. Гости не могут изменить домашнее расположение всегда, но могут выполнить эти типы действий:

Например, глава домашнего хозяйства создает домашнее расположение и добавляет членов семьи к дому. У каждого члена семьи должны быть персональное устройство на iOS и Apple ID со связанной учетной записью iCloud. Учетные данные iCloud, что члены семьи вводят в свои устройства на iOS, должны соответствовать Apple ID, предоставленный главой домашнего хозяйства для них для доступа к дому. По причинам конфиденциальности Apple ID скрыт от Вашего приложения.

Добавление гостя в дом требует следующих действий с устройством на iOS администратора:

  1. Администраторский пользователь вызывает действие для добавления гостя к дому.

  2. Ваше приложение вызывает addUserWithCompletionHandler: асинхронный метод.

  3. HomeKit выводит на экран диалоговое окно, запрашивающее Apple гостя ID.

  4. Пользователь вводит Apple гостя ID в диалоговое окно.

  5. Обработчик завершения возвращает новый пользовательский объект.

  6. Ваши отображения приложения имя гостя.

Добавление гостя в дом требует следующих действий с устройством на iOS гостя:

  1. Пользователь вводит учетные данные iCloud пользователя (Apple ID и пароль) в предпочтениях iCloud.

  2. Пользователь запускает Ваше приложение.

  3. Ваше приложение получает набор домов от домашнего объекта менеджера.

  4. Если учетные данные iCloud соответствуют Apple идентификатор, введенный администратором, дом администратора появляется в homes свойство.

Некоторые операции, выполняемые гостем, могут перестать работать. Если асинхронное сообщение к HomeKit перестало работать с кодом ошибки HMErrorCodeInsufficientPrivileges, пользователю не разрешают выполнить действие — пользователь является, вероятно, гостем, не администратором.

Чтобы протестировать, обрабатывает ли Ваше приложение гостевых пользователей правильно, считайте Тестирующие Многократные устройства на iOS и Пользователей.

Добавление и удаление пользователей

Для добавления гостевого пользователя к дому используйте addUserWithCompletionHandler: асинхронный метод.

[self.home addUserWithCompletionHandler:^(HMUser *user, NSError *error) {
    if (error == nil) {
        // Successfully added a user
    }
    else {
       // Unable to add a user
    }
}];

Для удаления пользователя из дома используйте removeUser:completionHandler: метод в HMHome класс.

Реализуйте home:didAddUser: и home:didRemoveUser: методы делегата в HMHomeDelegate протокол для обновления представлений, когда другие приложения добавляют и удаляют пользователей. Для создания домашнего делегата считайте Изменения Наблюдения в Отдельных Домах.

Получение имен пользователей

По причинам конфиденциальности Ваше приложение имеет доступ только для чтения к имени пользователя, не доступ для чтения или доступ для записи к Apple ID пользователя. Используйте users свойство в HMHome класс для получения пользователей дома. Используйте name свойство HMUser класс для получения имени пользователя.