如何通过配网基座及业务包快速搭建自定义配网首页
5.17.0 配网业务包发布单产品配网入口,结合配网基座提供的复合扫描功能,用户可自定义配网首页。
公版首页包含设备搜索功能、手动配网和扫一扫配网,三个功能均可已提供接口自定义样式。
设备搜索
针对 OEM APP,设备搜索提供两种交互,目前可在开发者平台进行配置。客户仍可使用基座提供的复合扫描设备功能来自定义设备搜索交互。搜索设备类型可自由控制,但需要注意不同设备类型搜索的前置条件。
如需要同时扫描双模、单点、SIGMesh和 Beacon 设备,示例如下:
Code: Select all
class searchModeConfigurationVC: UITableViewController {
var typeList:[ThingSmartActivatorTypeModel] = []
private var sigModel: ThingSmartActivatorTypeSigMeshModel = {
let type = ThingSmartActivatorTypeSigMeshModel()
type.type = ThingSmartActivatorType.sigMesh
type.typeName = NSStringFromThingSmartActivatorType(ThingSmartActivatorType.sigMesh)
type.timeout = 120
return type
}()
private var bleModel: ThingSmartActivatorTypeBleModel = {
let type = ThingSmartActivatorTypeBleModel()
type.type = ThingSmartActivatorType.ble
type.typeName = NSStringFromThingSmartActivatorType(ThingSmartActivatorType.ble)
type.timeout = 120
return type
}()
private var beaconModel: ThingSmartActivatorTypeBeaconModel = {
let type = ThingSmartActivatorTypeBeaconModel()
type.type = ThingSmartActivatorType.beacon
type.typeName = NSStringFromThingSmartActivatorType(ThingSmartActivatorType.beacon)
type.timeout = 120
return type
}()
lazy var discovery: ThingSmartActivatorDiscovery = {
let discovery = ThingSmartActivatorDiscovery()
self.typeList = [self.matterModel,self.EZModel,self.wiredModel,self.pegasusModel,self.bleModel,self.sigModel,self.beaconModel,self.subDeviceModel,self.routerModel]
discovery.register(withActivatorList: self.typeList)
discovery.setupDelegate(self)
discovery.loadConfig()
return discovery
}()
private func startSearch() {
guard let homeID = Home.current?.homeId else { return }
sigModel.spaceId = homeID
bleModel.spaceId = homeID
discovery.startSearch(typeList)
}
}
extension searchModeConfigurationVC: ThingSmartActivatorSearchDelegate {
func activatorService(_ service: ThingSmartActivatorSearchProtocol, activatorType type: ThingSmartActivatorTypeModel, didFindDevice device: ThingSmartActivatorDeviceModel?, error errorModel: ThingSmartActivatorErrorModel?) {
if let device = device {
/// discovery Device
}
}
func activatorService(_ service: ThingSmartActivatorSearchProtocol, activatorType type: ThingSmartActivatorTypeModel, didUpdateDevice device: ThingSmartActivatorDeviceModel) {
}
}
手动配网
公版手动配网列表种类多且展示为品类入口,OEM 客户可自定义配网品类列表,但是需要使用涂鸦提供样式,如果产品类型较少或者想在提供产品展示添加配网入口无法实现,因此5.17.0开放了单产品配网入口,配网信息可到开发者平台->产品配置中完成。
产品的配网列表展示和入口可自定义。
获取产品配网信息及跳转示例如下:
Code: Select all
let requestData = ThingActivatorCategoryDetailRequestData()
requestData.bizType = 1
requestData.bizValue = "rj74cnjwwsste1g6"
requestService.requestCategoryDetail(withParam: requestData) { result in
let impl = ThingSmartBizCore.sharedInstance().service(of: ThingActivatorProtocol.self)
(impl as AnyObject).gotoAcvitavor(with: result, userInfo: [:])
} failure: { error in
}
另配网流程交互也可自定义交互实现,可通过上述示例的接口获取配网信息自行实现交互。
扫一扫
扫码入口可自定义,但扫码 UI 不支持定制,目前仅提供带扫码 UI 的联合功能。
使用示例:
Code: Select all
if let impl = ThingSmartBizCore.sharedInstance.service(of: ThingActivatorProtocol.self),
impl.responds(to: #selector(impl.gotoQRCodeViewController(withUserInfo:))) {
impl.gotoQRCodeViewController(withUserInfo: nil)
}
参考文档
快速搭建单品类配网流程
iOS:https://developer.tuya.com/cn/docs/app- ... hotgklw3rv
Android:https://developer.tuya.com/cn/docs/app- ... hpg3cwjo0k
符合扫描设备功能
iOS:https://developer.tuya.com/cn/docs/app- ... 5yxmgx0isv
Android:https://developer.tuya.com/cn/docs/app- ... 38exgyp6om
扫一扫
iOS:https://developer.tuya.com/cn/docs/app- ... le-19-扫码功能
Android:https://developer.tuya.com/cn/docs/app- ... e-12-打开扫一扫