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 原生序列化还包含
support5GConfig、bleModuleVariant,当前 RN 类型声明未收录。 protocolVersion、authenticationMethod在原生 BLE 数据中是字符串;当前 RN 类型仍标注为数字。跨平台代码需要按实际数据做类型收窄,不能依赖数字比较。- Android
sendDp()返回成功状态而不保证返回完整数据点;数据变化通过addDeviceDataListener或getDp()获取。当前类型声明对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();