第九部分:用戶管理

2018-02-24 16:01 更新

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

  • 識別智能電器

  • 讀寫特性

  • 觀察特性值變化

  • 執(zhí)行動(dòng)作集

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

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

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

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

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

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

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

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

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

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

2. 用戶啟動(dòng)你的App。

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

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

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

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

添加和移除用戶

為了添加一個(gè)客人用戶到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:方法。

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

獲得用戶名

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

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

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號