门锁SDK使用

一、概述

本文主要介绍如何使用门锁SDK进行入网、设备控制

二、前置条件

  1. 完成准备工作
  2. 完成环境搭建
  3. 完成门锁SDK集成

三、使用

门锁SDK使用RN插件的形式支持不同设备,每一个设备单独一个插件文件。

3.1 SDK 配置 *

在 APP 启动的地方,如 AppDelegate.m,引入头文件,并按照步骤依次进行初始化配置

 #import <LMFramework/LMFramework.h>
初始化 SDK
+ (void)setServer:(NSString*)host appId:(NSString*)appId appKey:(NSString*)appKey iconBaseUrl:(NSString *)iconBaseUrl;
参数 说明
host Aqara配网域名(见开放平台)
appId 从开放平台申请的APPID
appKey 与APPID配套的APPKey
iconBaseUrl 配网UI层部分CDN图片的路径

示例代码:

    [LMOpenSDK setServer:@"https://aiot.aqara.com/" appId:@"7be19xxxxxxxxxxxxx" appKey:@"JddzxxxxxxxxxxIHfW8E3" iconBaseUrl:@"https://cdn.aqara.com/cdn/common/mainland"];

配置设备的服务器地址以及服务器区域码

+ (void)setCoapServer:(NSString*)coapServer;
+ (void)setCountryCode:(NSString*)countryCode;
参数 说明
coapServer 设备的服务器地址
countryCode 国家码

示例代码:

   [LMOpenSDK setCoapServer:@"aiot-coap.aqara.cn"];
   [LMOpenSDK setCountryCode:@"CHN"];

配置从开放平台申请到的用户信息

+ (void)setUserId:(NSString*)userId  token:(NSString*)token;
参数 说明
userId 用户ID
token 用户的token
[LMOpenSDK setUserId:@"431xxxxxx.xxxxxxx153527809" token:@"ad46dbxxxxxxxxx1fcee1"];

3.2 跳转门锁入网

在需要的地方,导入 LMRnFramework 的头文件,点击跳转头文件,可查看相应接口说明

#import <LMRnFramework/LMBusiRnSDK.h>

API - 跳转门锁入网插件

/**
 @param deviceModel  设备 model
 @param positionId   位置 id
 @param navC   导航控制器,默认获取最上层控制器
 */
- (void)startRnAccessPage: (NSString *)deviceModel
               positionId:(NSString *)positionId
                     navC: (UINavigationController * _Nullable)navC;

参数说明

字段 数据类型 描述 获取渠道
deviceModel String 设备模型值 参见附录支持的门锁设备清单
positionId String 房间位置 接口获取,详情参见Aqara开发者平台

示例代码:

  [[LMBusiRnSDK shareManager] startRnAccessPage: @"aqara.lock.agl002" positionId:@"real1.xxxxxxxxxxxxxxxxxxx512" navC:nil];

3.3 跳转门锁控制插件

在需要的地方,导入 LMRnFramework 的头文件,点击跳转头文件,可查看相应接口说明

#import <LMRnFramework/LMBusiRnSDK.h>

API - 跳转门锁控制插件

/**
 @param deviceId    设备 id
 @param deviceModel 设备 model
 @param navC   导航控制器,默认获取最上层控制器
 */
- (void)startRnDevicePage:(NSString *)deviceId
              deviceModel: (NSString *)deviceModel
                     navC: (UINavigationController * _Nullable)navC;
字段 数据类型 描述 获取渠道
deviceModel String 设备模型值 参见附录支持的门锁设备清单
deviceId String 设备Id 设备配网成功后,会生成该设备id

示例代码:

   [[LMBusiRnSDK shareManager] startRnDevicePage:@"lumi.54efxxxxxxxxxxxxxc88b" deviceModel:@"aqara.lock.agl002" navC:nil];

3.4 插件消息订阅

API - 注册 rn 插件消息监听

/// @param callback  消息监听回调
/// @note message    NSDictionary,  结构: { action: 'action_xxx_xxx',  param: {... ... } }
///       --action:
///         action_access_success  门锁入网成功
///         action_add_gateway     添加网关
///         action_open_ifttt      打开自动化
///         action_open_scene      打开场景
- (void)registerRnPluginMessageNotification:(void(^_Nullable)(NSDictionary * _Nullable message))callback;
字段 数据类型 描述 获取渠道
callback Block 消息监听回调
message NSDictionary 消息体

note: 请根据您项目的需要,订阅并解析相关action,自行处理消息事件

示例代码:

 [[LMBusiRnSDK shareManager] registerRnPluginMessageNotification:^(NSDictionary * _Nullable message) {
        NSLog(@"messsge: %@", message);
        if (message && [message objectForKey: @"action_access_success"]) {
            NSDictionary *param = [message objectForKey: @"param"];
            /// TODO: 处理入网成功提示, 设备名称修改等
            NSLog(@"--- 门锁入网成功 ---");
        }
    }];

API - 移除 rn 插件消息监听

- (void)unregisterRnPluginMessageNotification;
字段 数据类型 描述 获取渠道

note: 请根据您项目的需要,如已注册插件消息监听,请在 dealloc 等适当的地方移除,以免内存泄漏

示例代码:

 [[LMBusiRnSDK shareManager] unregisterRnPluginMessageNotification];
Copyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2024-02-21 09:55:50

results matching ""

    No results matching ""