React Native SDK
API 与版本说明

API 与版本说明

适用版本:react-native-gizwits-sdk-v5@1.7.11-beta。原生依赖为 Android 1.4.12、iOS ~> 2.1.8

SDK 管理

import RNGizSDKManagerModule from 'react-native-gizwits-sdk-v5';
 
const devicesResult = await RNGizSDKManagerModule.getDevices();
if (devicesResult.success) {
  console.log(devicesResult.data);
}
const configResult = await RNGizSDKManagerModule.getProductDataPointConfig('PRODUCT_KEY');

getDevices() 返回的设备已经附加能力方法。当前类型声明误写为单元素元组 [IDevice],实际数据是可包含零个或多个设备的数组。

cleanCache() 清理缓存,不销毁 SDK。当前没有公开的 destroy() / destory()initSDK() 会注册原生监听,应只初始化一次,页面监听用对应的 remove...Listener 移除。

配网与 OTA 差异

功能当前可用方式
BLE 配网的 bindWithUid使用 RNGizDeviceManagerModule.provideWiFiCredentials(id, 'BLE', ssid, password, timeout, callback, bindWithUid);设备快捷方法会丢失该参数
AI 模组自主云端绑定必须开启 bindWithUid,并预先完成用户授权;见 BLE 配网
LAN 配网的 bindWithUid当前原生桥接固定为 false;JS 传 true 也不会生效
AirLink通过原生回调接口调用,见 AirLink 配网
取消 OTA原生模块有接口,JS 设备对象未封装,见 取消 OTA
配网超时Android、iOS 均为秒,例如 60 秒传 60

SDK 返回的普通业务失败通过 GizResult.success === false 表示,Promise 不会因这类失败自动 reject;同时仍需处理桥接抛错等异常。不要仅用 catch 判断业务结果。

类型声明与原生数据

  • getAuthorizeData() 统一返回 { uid, token }。Android 登录结果没有该对象,注册结果使用 userId;请显式查询授权信息。
  • GizWiFiActivatorEvent.data 在 Android 为字符串,在 iOS 为数字。事件列表包含的设备日志事件比当前 TypeScript 联合类型更完整。
  • BLE 原生序列化还包含 support5GConfigbleModuleVariant,当前 RN 类型声明未收录。
  • protocolVersionauthenticationMethod 在原生 BLE 数据中是字符串;当前 RN 类型仍标注为数字。跨平台代码需要按实际数据做类型收窄,不能依赖数字比较。
  • Android sendDp() 返回成功状态而不保证返回完整数据点;数据变化通过 addDeviceDataListenergetDp() 获取。当前类型声明对 sendDp()startUpgrade()data 描述偏宽,应先判断字段是否实际存在。

音乐律动

设备对象已提供 startMusicalRhythm(sensitivity, mode, callback?)stopMusicalRhythm()mode'ROCK''SOOTHING',回调包含 { deviceID, data };需具备录音权限和相应设备能力。

const result = await device.startMusicalRhythm(50, 'ROCK', ({ deviceID, data }) => {
  console.log(deviceID, data.isBeat, data.bpm);
});
// Stop when no longer needed:
// await device.stopMusicalRhythm();