管理用户账号信息

更新时间:2024-03-14 07:01:24下载pdf

本文介绍如何管理用户账号信息。

修改用户账号信息

修改用户的自定义头像

因为用户自行上传头像会涉及合规问题,给您带来不必要的风险,该接口即将停止更新,请注意避免使用并及时调整应用功能。

参数说明

参数 说明
headIcon 头像图像
success 接口发送成功回调
failure 接口发送失败回调,error 表示失败原因

示例代码

Objective-C

- (void)updateHeadIcon:(UIImage *)headIcon {
    [[ThingSmartUser sharedInstance] updateHeadIcon:headIcon success:^{
        NSLog(@"update head icon success");
    } failure:^(NSError *error) {
        NSLog(@"update head icon failure: %@", error);
    }];
}

Swift

func updateHeadIcon(_ headIcon: UIImage) {
    ThingSmartUser.sharedInstance()?.updateHeadIcon(headIcon, success: {
        print("update head icon success")
    }, failure: { (error) in
        if let e = error {
            print("update head icon failure: \(e)")
        }
    })
}

选择摄氏温度或者华氏温度

接口描述

- (void)updateTempUnitWithTempUnit:(NSInteger)tempUnit
                           success:(nullable ThingSuccessHandler)success
                           failure:(nullable ThingFailureError)failure;

参数说明

参数 说明
tempUnit 温度单位
  • 1:℃
  • 2:℉
success 接口发送成功回调
failure 接口发送失败回调,error 表示失败原因

示例代码

Objective-C

- (void)updateTempUnitWithTempUnit:(NSInteger)tempUnit {
    [[ThingSmartUser sharedInstance] updateTempUnitWithTempUnit:tempUnit success:^{
        NSLog(@"update temp unit success");
    } failure:^(NSError *error) {
        NSLog(@"update temp unit failure: %@", error);
    }];
}

Swift

func updateTempUnit(withTempUnit tempUnit: Int) {
    ThingSmartUser.sharedInstance().updateTempUnit(withTempUnit: tempUnit, success: {
        print("update temp unit success")
    }, failure: { error in
        if let error = error {
            print("update temp unit failure: \(error)")
        }
    })
}

修改用户账号昵称

接口描述

- (void)updateNickname:(NSString *)nickName
               success:(nullable ThingSuccessHandler)success
               failure:(nullable ThingFailureError)failure;

参数说明

参数 说明
nickName 昵称
success 接口发送成功回调
failure 接口发送失败回调,error 表示失败原因

示例代码

Objective-C

- (void)modifyNickname:(NSString *)nickname {
    [[ThingSmartUser sharedInstance] updateNickname:nickname success:^{
        NSLog(@"updateNickname success");
    } failure:^(NSError *error) {
        NSLog(@"updateNickname failure: %@", error);
    }];
}

Swift

func modifyNickname(_ nickName: String) {
    ThingSmartUser.sharedInstance()?.updateNickname(nickName, success: {
        print("updateNickname success")
    }, failure: { (error) in
        if let e = error {
            print("updateNickname failure: \(e)")
        }
    })
}

更新用户所处的时区

接口描述

- (void)updateTimeZoneWithTimeZoneId:(NSString *)timeZoneId
                             success:(nullable ThingSuccessHandler)success
                             failure:(nullable ThingFailureError)failure;

参数说明

参数 说明
timeZoneId 时区 ID,例如 Asia/Shanghai
success 接口发送成功回调
failure 接口发送失败回调,error 表示失败原因

示例代码

Objective-C

- (void)updateTimeZoneId:(NSString *)timeZoneId {
    [[ThingSmartUser sharedInstance] updateTimeZoneWithTimeZoneId:timeZoneId success:^{
        NSLog(@"update timeZoneId success");
    } failure:^(NSError *error) {
        NSLog(@"update timeZoneId failure: %@", error);
    }];
}

Swift

func updateTimeZoneId(_ timeZoneId: String) {
    ThingSmartUser.sharedInstance()?.updateTimeZone(withTimeZoneId: timeZoneId, success: {
        print("update timeZoneId success")
    }, failure: { (error) in
        if let e = error {
            print("update timeZoneId failure: \(e)")
        }
    })
}

更新用户的当前定位

接口描述

- (void)updateLatitude:(double)latitude longitude:(double)longitude;

参数说明

参数 说明
latitude 用户所处的纬度
longitude 用户所处的经度

示例代码

Objective-C

- (void)updateLocation {
  double latitude = 30.000;
  double longitude = 120.000;
  [[ThingSmartSDK sharedInstance] updateLatitude:latitude longitude:longitude];
}

Swift

func updateLocation() {
  ThingSmartSDK.sharedInstance()?.updateLatitude(latitude, longitude: longitude);
}

更新当前账号绑定的手机或者邮箱

接口描述

/// Change to bind a mobile phone number or an email address.
/// @param account A mobile phone number or an email address.
/// @param countryCode The country code.
/// @param code The verification code.
/// @param success Called when the task is finished.
/// @param failure Called when the task is interrupted by an error.
- (void)changBindAccount:(NSString *)account
                      countryCode:(NSString *)countryCode
                                  code:(NSString *)code
                             success:(nullable ThingSuccessHandler)success
                             failure:(nullable ThingFailureError)failure;

参数说明

参数 说明
account 账号,可以是手机号码或者邮箱
countryCode 国家码
code 验证码
success 接口发送成功回调
failure 接口发送失败回调,error 表示失败原因

示例代码

Objective-C

[[ThingSmartSDK sharedInstance] changBindAccount:@"example@example.com"
         countryCode:@"001"
                code:@"123456"
             success:^(id result) {
                 NSLog(@"Success: %@", result);
             } failure:^(NSError *error) {
                 NSLog(@"Error: %@", error.localizedDescription);
             }];

Swift

ThingSmartSDK.sharedInstance().changBindAccount("example@example.com",
                     countryCode: "001",
                     code: "123456",
                     success: { result in
                         print("Success: \(result)")
                     }, failure: { error in
                         print("Error: \(error.localizedDescription)")
                     })

退出登录或切换账号

接口描述

- (void)loginOut:(nullable ThingSuccessHandler)success
         failure:(nullable ThingFailureError)failure;

参数说明

参数 说明
success 接口发送成功回调
failure 接口发送失败回调,error 表示失败原因

示例代码

Objective-C

- (void)loginOut {
    [ThingSmartUser sharedInstance] loginOut:^{
        NSLog(@"logOut success");
    } failure:^(NSError *error) {
        NSLog(@"logOut failure: %@", error);
    }];
}

Swift

func loginOut() {
    ThingSmartUser.sharedInstance()?.loginOut({
        print("logOut success")
    }, failure: { (error) in
        if let e = error {
            print("logOut failure: \(e)")
        }
    })
}

停用或注销用户账号

接口描述

注销账号后,一周后才会永久注销并删除用户账户中的所有信息。但是,如果用户在永久注销之前重新登录的话,则注销请求会被取消。

- (void)cancelAccount:(nullable ThingSuccessHandler)success
              failure:(nullable ThingFailureError)failure;

参数说明

参数 说明
success 接口发送成功回调
failure 接口发送失败回调,error 表示失败原因

示例代码

Objective-C

- (void)cancelAccount {
    [ThingSmartUser sharedInstance] cancelAccount:^{
        NSLog(@"cancel account success");
    } failure:^(NSError *error) {
        NSLog(@"cancel account failure: %@", error);
    }];
}

Swift

func cancelAccount() {
    ThingSmartUser.sharedInstance()?.cancelAccount({
        print("cancel account success")
    }, failure: { (error) in
        if let e = error {
            print("cancel account failure: \(e)")
        }
    })
}

处理登录会话过期

如果用户账号长期未登录或者账号修改了密码,在访问服务的过程中会返回 Session 过期的错误。此时,您需要监听 ThingSmartUserNotificationUserSessionInvalid 通知,跳转至登录页面,引导用户重新登录。

SDK 5.1 以前版本会在失效时收到多条 ThingSmartUserNotificationUserSessionInvalid 通知,导致您的回调被执行多次而造成问题。建议在处理通知时增加 仅处理一次 的控制,例如利用布尔变量、时间窗口等。

Objective-C

- (void)loadNotification {
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sessionInvalid) name:ThingSmartUserNotificationUserSessionInvalid object:nil];
}

- (void)sessionInvalid {
        NSLog(@"sessionInvalid");
        //跳转至登录页面
        MyLoginViewController *vc = [[MyLoginViewController alloc] init];
        self.window.rootViewController = vc;
      [self.window makeKeyAndVisible];
}

Swift

func loadNotification() {
    NotificationCenter.default.addObserver(self, selector: #selector(sessionInvalid), name: NSNotification.Name(rawValue: "ThingSmartUserNotificationUserSessionInvalid"), object: nil)
}

@objc func sessionInvalid() {
    print("sessionInvalid")
    //跳转至登录页面
        let vc = MyLoginViewController()
        window.rootViewController = vc
        window.makeKeyAndVisible()
}