设备群组 UI 业务包

更新时间:2022-06-23 10:06:50下载pdf

智慧居住设备群组 UI 业务包功能封装了群组业务逻辑和 UI 界面,创建群组后可以同时控制群组内的设备。业务逻辑包括创建相同设备类型的群组、添加群组设备、删除群组设备等。

接入组件

在工程的 Podfile 文件中添加群组业务包组件,并执行 pod update 命令:

source "https://github.com/tuya/TuyaPublicSpecs.git"
source 'https://cdn.cocoapods.org/'

target 'your_target_name' do
  # TuyaSmartResidence SDK
  pod "TuyaSmartResidenceKit"
  # 添加设备群组 UI 业务包
  pod 'TuyaSmartResidenceGroupHandleBizBundle'
end

服务协议

UI 业务包实现 TuyaSmartResidenceGroupHandleProtocol 协议以提供对外服务。在 TYModuleServices 组件中查看 TuyaSmartResidenceGroupHandleProtocol.h 协议文件内容为:

@protocol TuyaSmartResidenceGroupHandleProtocol <NSObject>
/**
 创建群组

 @param deviceId    设备 ID 
 @param completion  回调返回该设备是否支持群组控制
 */
- (void)createGroup:(NSString *_Nonnull)deviceId completion:(void (^ _Nullable)(TYGroupHandleType type))completion;

/**
 编辑群组

 @param groupId     群组 ID
 @param completion  回调
 */
- (void)editGroup:(NSString *_Nonnull)groupId completion:(void (^ _Nullable)(TYGroupHandleType type))completion;

@end

使用指南

注意事项

  • 调用任何接口之前,请务必确认用户已登录。
  • 调用业务包逻辑前,必须确保已经获取到 site 相关数据,便于作为接口入参。
#import <TuyaSmartBizCore/TuyaSmartBizCore.h>
#import <TYModuleServices/TuyaSmartResidenceGroupHandleProtocol.h>

- (void)initCurrentSite {
    self.site = [TuyaResidenceSite siteWithSiteId:@"siteId"];
    [self.site fetchSiteDetailWithSuccess:^(TuyaResidenceSiteModel * _Nonnull siteModel) {

    } failure:^(NSError *error) {

    }];
}

创建群组

#import <TuyaSmartBizCore/TuyaSmartBizCore.h>
#import <TYModuleServices/TuyaSmartResidenceGroupHandleProtocol.h>

- (void)createGroup:(NSString *_Nonnull)deviceId completion:(void (^ _Nullable)(TYGroupHandleType type))completion {
    id <TuyaSmartResidenceGroupHandleProtocol> impl = [[TuyaSmartBizCore sharedInstance] serviceOfProtocol:@protocol(TuyaSmartResidenceGroupHandleProtocol)];
    [impl createGroup:deviceId completion:^(TYGroupHandleType type) {
        switch (type) {
            case TYGroupHandleTypeInvalid:
                NSLog(@"DeviceId is invalid");
                break;
            case TYGroupHandleTypeSupport:
                NSLog(@"Support");
                break;
            case TYGroupHandleTypeNotSupport:
                NSLog(@"Not Support");
                break;
            default:
                break;
        }
    }];
}

编辑群组

#import <TuyaSmartBizCore/TuyaSmartBizCore.h>
#import <TYModuleServices/TuyaSmartResidenceGroupHandleProtocol.h>

// 此处 groupId 可以通过获取 site.groupList 子元素获取

- (void)editGroup:(NSString *_Nonnull)groupId completion:(void (^ _Nullable)(TYGroupHandleType type))completion {
    id <TuyaSmartResidenceGroupHandleProtocol> impl = [[TuyaSmartBizCore sharedInstance] serviceOfProtocol:@protocol(TuyaSmartResidenceGroupHandleProtocol)];
    [impl editGroup:groupId completion:^(TYGroupHandleType type) {
        switch (type) {
            case TYGroupHandleTypeInvalid:
                NSLog(@"DeviceId is invalid");
                break;
            case TYGroupHandleTypeSupport:
                NSLog(@"Support");
                break;
            case TYGroupHandleTypeNotSupport:
                NSLog(@"Not Support");
                break;
            default:
                break;
        }
    }];
}