迁移指南

最近更新时间:2022-02-24 15:18:48

我的收藏

从 v0.x 版本迁移到 v1.x 版本

更新项目依赖

更新小程序 SDK 到 v1.x 版本,需要更新项目依赖,请在项目目录下的命令行中执行以下命令:
npm install qcloud-iotexplorer-appdev-sdk@1
说明:
如果您使用了微信开发者工具的 npm 支持,在更新项目依赖后,需要选择微信开发者工具菜单栏的工具 > 构建 npm以重新构建 npm 依赖。

调整导入 SDK 的方式

导入 v0.x 版本小程序 SDK 的方式为:
// 导入 SDK
const {
QcloudIotExplorerAppDevSdk
} = require('qcloud-iotexplorer-appdev-sdk/qcloud-iotexplorer-appdev-sdk');

// 导入常量
const {
EventTypes,
} = require('qcloud-iotexplorer-appdev-sdk/qcloud-iotexplorer-appdev-sdk');

const sdk = new QcloudIotExplorerAppDevSdk({
// 参数略
});
小程序 SDK 升级到 v1.x 版本后,导入的方式需要调整为:
// 导入 SDK
const { AppDevSdk } = require('qcloud-iotexplorer-appdev-sdk');

// 导入常量
const { EventTypes } = AppDevSdk.constants;

const sdk = new AppDevSdk({
// 参数略
});

调整配网代码

v0.x 版本小程序 SDK 内置支持 Softap 配网及 SmartConfig 配网。v1.x 版本小程序 SDK 增加了更多配网方式的支持,并将配网模块独立出来,开发者可以按需导入。关于小程序 SDK 具体支持的配网方式,请参见 设备配网
选择需要安装的配网插件,并在命令行中执行相应的安装命令。下面以安装 AirKiss 配网插件为例。
npm install qcloud-iotexplorer-appdev-plugin-wificonf-airkiss
向 SDK 注册配网插件,请参照以下代码(以 AirKiss 配网插件为例)。
import AirKissPlug from 'qcloud-iotexplorer-appdev-plugin-wificonf-airkiss';

AirKissPlug.install(sdk);
调用配网插件进行配网,请参照以下代码(以 AirKiss 配网插件为例)。
import { constants as WifiConfConstants } from 'qcloud-iotexplorer-appdev-plugin-wificonf-core';

const {
WifiConfErrorMsg, WifiConfStepCode,
} = WifiConfConstants;

/**
* airkiss一键配网
*/
export function AirKissConfigure({
token,
wifiInfo = {
SSID: '';
password: '';
BSSID: '';
},
familyId = 'default',
roomId,
reporter,
onStepChange,
onStatusChange,
}) {
const onProgress = (data) => {
reporter.info(data.code, data.detail);

switch (data.code) {
case WifiConfStepCode.PROTOCOL_SUCCESS:
onStepChange(1);
break;
case WifiConfStepCode.CREATE_UDP_CONNECTION_SUCCESS:
onStepChange(2);
break;
case WifiConfStepCode.BUSINESS_QUERY_TOKEN_STATE_SUCCESS:
onStepChange(3);
break;
case WifiConfStepCode.WIFI_CONF_SUCCESS:
onStepChange(4);
break;
}
};

const onComplete = ({ productId, deviceName }) => {
onStatusChange({
status: 'success',
productId,
deviceName,
});
};

const onError = async ({ code, detail }) => {
reporter.error(code, detail);

onStatusChange({ status: 'error' });
};

sdk.plugins['wifiConfAirKiss'].start({
wifiConfToken: token,
targetWifiInfo: wifiInfo,
autoRetry: true, // 自动处理故障流程
familyId,
roomId,
onProgress,
onComplete,
onError
});
}