用戶管理

2018-09-14 11:44 更新

用戶管理

創(chuàng)建 home 的用戶是該 home 的管理員,可以執(zhí)行所有操作,包括添加一個客人用戶到 home。任何管理員添加到這個 home 的用戶(HMUser)都有一個有限的權(quán)限??腿瞬荒芨募彝サ牟季?,但是可以執(zhí)行下面的動作:

  • 識別智能電器
  • 讀寫特性
  • 觀察特性值變化
  • 執(zhí)行動作集

比如,一個家庭的戶主可以創(chuàng)建一個 home 布局并向其中添加家庭成員。每個家庭成員必須擁有一個 iOS 設(shè)備和 Apple ID 以及相關(guān)的 iCloud 賬戶。iCloud 需要個人輸入的 Apple ID 和戶主提供的 Apple ID 相吻合,以便讓他們訪問這個 home??紤]到隱私問題,Apple ID 對你的 App 是不可見的。

管理員需要遵從以下步驟來添加一個客人到 home 中:

  1. 管理員調(diào)用一個動作將客人添加到home中。

  2. 你的App調(diào)用addUserWithCompletionHandler:異步方法。

  3. HomeKit展示一個對話框,要求輸入客人的Apple ID。

  4. 用戶輸入客人的Apple ID。

  5. 在完成回調(diào)中返回一個新的用戶。

  6. 你的App展示客人的名字。

添加一個客人到home,需要在客人的iOS設(shè)備上做以下操作:

  1. 用戶在iCloud偏好設(shè)置中輸入iCloud憑證(Apple ID和密碼)。

  2. 用戶啟動你的App。

  3. 你的App通過home manager object獲得一個home集合。

  4. 如果iCloud的憑證和管理員輸入的Apple ID相同,那么管理員的home將會出現(xiàn)在homes屬性中。

客人執(zhí)行的操作可能會失敗。如果一個異步方法中出現(xiàn) HMErrorCodeInsufficientPrivileges 錯誤碼的話,這就意味著用戶沒有足夠的權(quán)限來執(zhí)行動作-也許這個用戶只是客人,而不是管理員。

為了測試你的 App 是否正確處理了客人用戶,請閱讀Testting Multiple iOS Devices and Users。

添加和移除用戶

為了添加一個客人用戶到home,請使用addUserWithCompletionHandler:異步方法。

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

想要移除 home 中的用戶,請使用 HMHome 類的 removeUser:completionHandler:方法。

通過實現(xiàn) HMHomeDelegate 協(xié)議中的 home:didAddUser:和 home:didRemoveUser:協(xié)議方法檢查新添加和移除的用戶并更新視圖。關(guān)于如何創(chuàng)建一個delegate,請閱讀Observing Changes to Individual Homes。

獲得用戶名

出于隱私的考慮,你的 App 對用戶名只有讀得權(quán)限,并不能讀寫用戶的 Apple ID。使用 HMHome 對象的 users 屬性來獲取用戶。使用 HMUser 類的 name 屬性來獲取用戶名。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號