更新时间:2022-06-23 09:35:25下载pdf
群组业务包功能封装了群组业务逻辑和 UI 界面,创建群组后可以同时控制群组内的设备。业务逻辑主要包括创建同设备类型的群组,添加和删除群组设备操作。暂时支持 Wi-Fi 普通群组和 Wi-Fi 标准群组的创建和编辑。
在工程的 Podfile
文件中添加群组业务包组件,并执行 pod update
命令:
source "https://github.com/tuya/TuyaPublicSpecs.git"
source 'https://cdn.cocoapods.org/'
target 'your_target_name' do
# 添加群组业务包
pod 'TuyaSmartGroupHandleBizBundle', '~> 3.22.0'
end
群组业务包实现 TYGroupHandleProtocol
协议以提供对外服务。
在 TYModuleServices
组件中查看 TYGroupHandleProtocol.h
协议文件内容为:
typedef enum {
TYGroupHandleTypeSupport,
TYGroupHandleTypeNotSupport,
TYGroupHandleTypeInvalid,
} TYGroupHandleType;
@protocol TYGroupHandleProtocol <NSObject>
/**
zh^
创建wifi标准或普通群组
zh$
en^
Create wifi standard or common group
en$
@param deviceId zh^ 设备ID zh$ en^ device ID en$
@param completion zh^ 回调 zh$ en^ call back en$
*/
- (void)createWifiGroupWithDeviceId:(NSString *_Nonnull)deviceId completion:(void (^ _Nullable)(TYGroupHandleType type))completion;
/**
zh^
编辑WIFI标准或普通群组
zh$
en^
Edit wifi standard or common group
en$
@param groupId zh^ 群组ID zh$ en^ group ID en$
@param completion zh^ 回调 zh$ en^ call back en$
*/
- (void)editWifiGroupWithGroupId:(NSString *_Nonnull)groupId completion:(void (^ _Nullable)(TYGroupHandleType type))completion;
@end
场景业务包正常运行需要依赖 TYSmartHomeDataProtocol
这个协议提供的协议方法,调用业务包之前需要实现 TYSmartHomeDataProtocol
协议,来提供场景组件所需的当前家庭信息:
/**
获取当前的家庭,当前没有家庭的时候,返回nil。
@return TuyaSmartHome
*/
- (TuyaSmartHome *)getCurrentHome;
在使用任何接口之前,务必确认用户已登录。
调用业务包逻辑前,要先实现 TYSmartHomeDataProtocol
中的协议方法getCurrentHome
。
Objective-C 示例:
#import <TuyaSmartBizCore/TuyaSmartBizCore.h>
#import <TYModuleServices/TYSmartHomeDataProtocol.h>
- (void)initCurrentHome {
// 注册要实现的协议
[[TuyaSmartBizCore sharedInstance] registerService:@protocol(TYSmartHomeDataProtocol) withInstance:self];
}
// 实现对应的协议方法
- (TuyaSmartHome *)getCurrentHome {
TuyaSmartHome *home = [TuyaSmartHome homeWithHomeId:@"当前家庭id"];
return home;
}
Swfit 示例:
import TuyaSmartDeviceKit
class TYMessageCenterTest: NSObject,TYSmartHomeDataProtocol{
func test() {
TuyaSmartBizCore.sharedInstance().registerService(TYSmartHomeDataProtocol.self, withInstance: self)
}
func getCurrentHome() -> TuyaSmartHome! {
let home = TuyaSmartHome.init(homeId: 111)
return home
}
}
Objective-C 示例:
#import <TuyaSmartBizCore/TuyaSmartBizCore.h>
#import <TYModuleServices/TYGroupHandleProtocol.h>
- (void)createWifiGroupWithDeviceId:(NSString *)deviceId completion:(void (^)(TYGroupHandleType type))completion{
id <TYGroupHandleProtocol> impl = [[TuyaSmartBizCore sharedInstance] serviceOfProtocol:@protocol(TYGroupHandleProtocol)];
[impl createWifiGroupWithDeviceId: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;
}
}];
}
Swift 示例:
func createWifiGroup(withDeviceId deviceId: String, completion: @escaping (TYGroupHandleType) -> Void) {
let groupImpl = TuyaSmartBizCore.sharedInstance().service(of: TYGroupHandleProtocol.self) as? TYGroupHandleProtocol
groupImpl?.createWifiGroup(withDeviceId: deviceId, completion: { (type) in
switch type {
case TYGroupHandleTypeInvalid :
print("DeviceId is invalid")
break
case TYGroupHandleTypeSupport :
print("Support")
break
case TYGroupHandleTypeNotSupport :
print("NotSupport")
break
default :
break
}
})
}
Objective-C 示例:
#import <TuyaSmartBizCore/TuyaSmartBizCore.h>
#import <TYModuleServices/TYGroupHandleProtocol.h>
- (void)editWifiGroupWithGroupId:(NSString *)groupId completion:(void (^)(TYGroupHandleType type))completion;{
id <TYGroupHandleProtocol> impl = [[TuyaSmartBizCore sharedInstance] serviceOfProtocol:@protocol(TYGroupHandleProtocol)];
[impl editWifiGroupWithGroupId: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;
}
}];
}
Swift 示例:
func editWifiGroup(withGroupId groupId: String, completion: @escaping (TYGroupHandleType) -> Void) {
let groupImpl = TuyaSmartBizCore.sharedInstance().service(of: TYGroupHandleProtocol.self) as? TYGroupHandleProtocol
groupImpl?.editWifiGroup(withGroupId: groupId, completion: { (type) in
switch type {
case TYGroupHandleTypeInvalid :
print("DeviceId is invalid")
break
case TYGroupHandleTypeSupport :
print("Support")
break
case TYGroupHandleTypeNotSupport :
print("NotSupport")
break
default :
break
}
})
}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈