Page 1 of 1

iOS 实现 App 内热点自动连接

Posted: 2024年 Dec 3日 14:42
by ZoeTuya

Tuya App 已实现 App 内自动连接设备热点的功能,效果过下:

DCIM.jpg

热点获取

APP 中获取热点前缀有三个维度
1、pid 维度

配网手动三级品类详情信息中获取,此逻辑涉及 App 高级能力定制热点,具体参考文档:https://developer.tuya.com/cn/docs/iot/ ... uzks2ue6ur

定制热点之后可关联具体产品

企业微信截图_e4efd642-fa7c-4d3d-aa46-70f496040ccb.png

获取 pid 对应热点
在 podfile 中,引入 ThingSmartBusinessExtensionKit 组件。

ThingSmartActivatorDiscoveryRequest.h 中提供获取产品配网引导信息的方法。
方法

Code: Select all

/// Request a list of level-2 categories corresponding to level-1 categories
/// @param param Request parameters
/// @param success Network success callback to return bootstrap details
/// @param failure Network failure callbacks
- (void)requestCategoryDetailWithParam:(ThingActivatorCategoryDetailRequestData *)param success:(void(^)(ThingSmartDeviceCategoryModel *result))success failure:(ThingActivatorCallbackError)failure;

Objective-C 示例

Code: Select all

ThingActivatorCategoryDetailRequestData *param = [[ThingActivatorCategoryDetailRequestData alloc] init];
param.bizType = @1;
param.bizValue = @"productid";

[self.requestService requestCategoryDetailWithParam:param success:^(ThingSmartDeviceCategoryModel * _Nonnull result) {
  // result.display.hotspotName
} failure:failure];

2、App 维度

NG后台“热点名称”中可以配置,以“|”分割,动态生效,ODM客户可找对应项目经理进行配置,业务包客户可通过 custom.json 配置

3、默认热点

默认热点前缀为 SmartLife- 和 SL-

自动连接

iOS 13 以上版本支持,检测是否有符合前缀的热点,如果有则会弹出上图系统弹窗。

使用 NEHotspotConfigurationManager 中的方法来实现自动连接

1、使用热点前缀初始化一个新的 NEHotspotConfiguration 对象

Code: Select all

        NEHotspotConfiguration *configuration = [[NEHotspotConfiguration alloc] initWithSSIDPrefix:apSsidPrefix];

2、调用添加网络的方法

Code: Select all

        [[NEHotspotConfigurationManager sharedManager] applyConfiguration:configuration completionHandler:^(NSError * _Nullable error) {
            if (error) {
                /// 连接失败
            } else {
                /// 连接成功
            }
            
        }];