更新记录

v1.0.2023.08.21(2023-08-21)

修复iOS16TY_EZ配网不成功问题,详情请查看:https://developer.tuya.com/cn/docs/iot/oem-ez-privacy-apply?id=Kb8avep9c7wg6

v1.0.2023.07.08(2023-07-11)

2023-07-08

修改iOSbug,添加功能。

v1.0.2023.07.04(2023-07-06)

2023-07-04

修复iOS家庭接口缺失,新增子设备配网api

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 12.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 适用版本区间:11 - 15

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


由于版本差异太大,该版本为4.x版本,新的5.x版本将作为新插件发布

插件使用说明:

一、使用简介

功能说明:uniapp使用涂鸦SDK完成机智云设备控制。
涂鸦SDK地址:https://developer.tuya.com/cn/docs/app-development/preparation?id=Ka69nt983bhh5
使用说明:将下载的安全图片重命名为 t_s.bmp
 android放置到工程目录的 nativeplugins/XM-Tuya/android/assets 文件夹下
 ios放到nativeplugins/XM-Tuya/ios/BundleResources文件夹下,没有文件夹就创建对应文件夹,参考demo

请先根据文档进行试用再购买,联系QQ:1804945430,微信:18980392735,有问题联系我。

二、调用范例

1、用户管理

<template>
    <view>
        <div>
            <button type="default" @click="getWhiteListWhoCanSendMobileCodeSuccess">查询验证码服务可用地区</button>
            <button type="default" @click="sendVerifyCodeWithUserName">发送手机号码验证码</button>
            <button type="default" @click="checkCodeWithUserName">校验填入的验证码</button>
            <button type="default" @click="registerAccountWithPhone">使用手机号码注册账号</button>
            <button type="default" @click="loginWithPhonePassword">使用手机号码和密码登录账号</button>
            <button type="default" @click="loginWithPhone">使用手机号码和验证码登录账号</button>
            <button type="default" @click="resetPhonePassword">重置手机号码注册的账号密码</button>
            <button type="default" @click="registerAccountWithEmail">使用邮箱地址注册账号</button>
            <button type="default" @click="loginWithEmail">使用邮箱地址和密码登录账号</button>
            <button type="default" @click="loginWithEmailCode">使用邮箱地址和验证码登录账号</button>
            <button type="default" @click="resetEmailPassword">重置邮箱地址账户的密码</button>
            <button type="default" @click="sendBindVerifyCodeWithEmail">账号绑定邮箱地址-发送验证码</button>
            <button type="default" @click="bindEmail">绑定邮箱地址</button>
            <button type="default" @click="uploadUserAvatar">修改用户头像</button>
            <button type="default" @click="setTempUnit">选择摄氏温度或者华氏温度</button>
            <button type="default" @click="updateNickName">修改用户账号昵称</button>
            <button type="default" @click="updateTimeZone">更新用户所处的时区</button>
            <button type="default" @click="setLatAndLong">更新用户的当前定位</button>
            <button type="default" @click="updateUserInfo">同步用户账号信息</button>
            <button type="default" @click="touristLogOut">匿名用户退出登录</button>
            <button type="default" @click="logout">其它账号退出登录</button>
            <button type="default" @click="cancelAccount">停用或注销用户账号</button>
            <button type="default" @click="setOnNeedLoginListener">处理登录会话过期</button>
        </div>
    </view>

</template>

<script>
    var userModule = uni.requireNativePlugin("XM-TuyaUserModule");
    const modal = uni.requireNativePlugin('modal');
    export default {
        data() {

        },
        methods: {
            //查询验证码服务可用地区
            getWhiteListWhoCanSendMobileCodeSuccess() {
                userModule.getWhiteListWhoCanSendMobileCodeSuccess((resp) => {
                    console.log("getWhiteListWhoCanSendMobileCodeSuccess callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //发送手机号码验证码
            sendVerifyCodeWithUserName() {
                userModule.sendVerifyCodeWithUserName({
                    /**
                     *  userName    手机号码
                        region  区域,默认填写 "" 即可
                        countryCode 手机号码所在的国家区号,例如 86 表示中国大陆地区
                        type    发送验证码类型。取值:
                            1:使用手机号码注册账号时,发送验证码
                            2:使用手机号码登录账号时,发送验证码
                            3:重置手机号码注册的账号的密码时,发送验证码
                     */
                    userName: 'phone', // 手机号或者邮箱号
                    region: '', // 区域
                    countryCode: '86', // 手机区号
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("sendVerifyCodeWithUserName callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //校验填入的验证码
            checkCodeWithUserName() {
                userModule.checkCodeWithUserName({
                    /**
                    userName    用户名
                    region  区域,默认填写 "" 即可
                    countryCode 手机号码所在的国家区号,例如 86 表示中国大陆地区
                    code    验证码
                    type    校验类型。取值:
                    1:使用手机号码|邮箱注册账号时,校验验证码
                    2:使用手机号码|邮箱登录账号时,校验验证码
                    3:重置手机号码|邮箱注册的账号的密码时,校验验证码
                    8:注销手机号码注册的账号时,校验验证码
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("checkCodeWithUserName callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //使用手机号码注册账号
            registerAccountWithPhone() {
                userModule.registerAccountWithPhone({
                    /**
                    countryCode 手机号码所在的国家区号,例如 86 表示中国大陆地区
                    phoneNumber 电话号码
                    passwd  密码
                    code    验证码
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("registerAccountWithPhone callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //使用手机号码和密码登录账号
            loginWithPhonePassword() {
                userModule.loginWithPhonePassword({
                    /**
                    countryCode 手机号码所在的国家区号,例如 86 表示中国大陆地区
                    phone   手机号码
                    passwd  登录密码
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("loginWithPhonePassword callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //使用手机号码和验证码登录账号
            loginWithPhone() {
                userModule.loginWithPhone({
                    /**
                    countryCode 手机号码所在的国家区号,例如 86 表示中国大陆地区
                    phone   电话号码
                    code    验证码
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("loginWithPhonePassword callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //重置手机号码注册的账号密码
            resetPhonePassword() {
                userModule.resetPhonePassword({
                    /**
                    countryCode 手机号码所在的国家区号,例如 86 表示中国大陆地区
                    phone   手机号码
                    code    验证码
                    newPasswd   新密码
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("resetPhonePassword callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //使用邮箱地址注册账号
            registerAccountWithEmail() {
                userModule.registerAccountWithEmail({
                    /**
                    countryCode 国家码,例如 86。请注意,账号一旦注册到一个国家或地区,数据无法迁移到其他国家或地区。
                    email   邮箱地址
                    passwd  密码
                    code    验证码
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("registerAccountWithEmail callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //使用邮箱地址和密码登录账号
            loginWithEmail() {
                userModule.loginWithEmail({
                    /**
                    countryCode 国家码,例如 86
                    email   邮箱地址
                    passwd  登录密码
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("loginWithEmail callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //使用邮箱地址和验证码登录账号
            loginWithEmailCode() {
                userModule.loginWithEmailCode({
                    /**
                    countryCode 国家码,例如 86
                    email   邮箱地址
                    code    验证码
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("loginWithEmailCode callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //重置邮箱地址账户的密码
            resetEmailPassword() {
                userModule.resetEmailPassword({
                    /**
                    countryCode 国家码,例如 86
                    email   邮箱地址
                    emailCode   验证码
                    passwd  新密码
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("resetEmailPassword callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //账号绑定邮箱地址-发送验证码
            sendBindVerifyCodeWithEmail() {
                userModule.sendBindVerifyCodeWithEmail({
                    /**
                    countryCode 国家或地区的区号,例如 86 表示中国大陆
                    email   邮箱地址
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("sendBindVerifyCodeWithEmail callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //绑定邮箱地址
            bindEmail() {
                userModule.bindEmail({
                    /**
                    countryCode 国家或地区的区号,例如 86 表示中国大陆
                    email   邮箱地址
                    code    通过 sendBindVerifyCodeWithEmail 获取到的验证码
                    sId 用户账号的会话(session)ID,您可以从用户数据模型中查询
                     */
                    userName: 'phone', // 手机号
                    region: '', // 区域
                    countryCode: '86', // 86 表示中国大陆地区
                    code: '', // 验证码
                    type: 1 // 使用手机号码注册账号时,发送验证码
                }, (resp) => {
                    console.log("bindEmail callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //修改用户头像
            uploadUserAvatar() {
                userModule.uploadUserAvatar({
                    filePath: '' // 文件路径
                }, (resp) => {
                    console.log("uploadUserAvatar callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //选择摄氏温度或者华氏温度
            setTempUnit() {
                userModule.setTempUnit({
                    /**
                     * unit 
                        TempUnitEnum.Celsius:°C
                        TempUnitEnum.Fahrenheit:°F
                     */
                    unit: 'Celsius' // 温度单位
                }, (resp) => {
                    console.log("setTempUnit callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //修改用户账号昵称
            updateNickName() {
                userModule.updateNickName({
                    /**
                    name    昵称
                     */
                    name: '' // 昵称
                }, (resp) => {
                    console.log("updateNickName callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //更新用户所处的时区
            updateTimeZone() {
                userModule.updateTimeZone({
                    /**
                    timezoneId  时区 ID,例如 Asia/Shanghai
                     */
                    timezoneId: '' // 昵称
                }, (resp) => {
                    console.log("updateTimeZone callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //更新用户的当前定位
            setLatAndLong() {
                userModule.setLatAndLong({
                    /**
                    timezoneId  时区 ID,例如 Asia/Shanghai
                     */
                    lat: '', // 昵称
                    lon: '' // 昵称
                }, (resp) => {
                    console.log("setLatAndLong callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //同步用户账号信息
            updateUserInfo() {
                userModule.updateUserInfo((resp) => {
                    console.log("updateUserInfo callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //匿名用户退出登录
            touristLogOut() {
                userModule.touristLogOut((resp) => {
                    console.log("touristLogOut callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //其它账号退出登录
            logout() {
                userModule.logout((resp) => {
                    console.log("logout callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //停用或注销用户账号
            cancelAccount() {
                userModule.cancelAccount((resp) => {
                    console.log("cancelAccount callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //处理登录会话过期
            setOnNeedLoginListener() {
                userModule.setOnNeedLoginListener((resp) => {
                    console.log("setOnNeedLoginListener callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            }
        }
    }
</script>

2、家庭管理

<template>
    <view>
        <div>
            <button type="default" @click="createHome">创建家庭</button>
            <button type="default" @click="queryHomeList">获取家庭</button>
            <button type="default" @click="registerTuyaHomeChangeListener">新增一个家庭监听</button>
            <button type="default" @click="unRegisterTuyaHomeChangeListener">删除一个家庭监听</button>
            <button type="default" @click="getHomeDetail">查询家庭详细信息</button>
            <button type="default" @click="getHomeLocalCache">查询家庭离线的详细信息</button>
            <button type="default" @click="updateHome">修改家庭信息</button>
            <button type="default" @click="getHomeWeatherSketch">查询家庭天气的简要参数</button>
            <button type="default" @click="getHomeWeatherDetail">查询家庭天气的详细参数</button>
            <button type="default" @click="dismissHome">注销家庭</button>
            <button type="default" @click="sortDevInHome">设置家庭中设备和群组的顺序</button>
            <button type="default" @click="registerHomeStatusListener">注册或注销家庭信息变更的监听</button>
            <button type="default" @click="unRegisterHomeStatusListener">反注册或注销家庭信息变更的监听</button>
            <button type="default" @click="addRoom">新增房间</button>
            <button type="default" @click="removeRoom">删除房间</button>
            <button type="default" @click="sortRoom">房间排序</button>
            <button type="default" @click="getDeviceRoomBean">根据设备查询房间信息</button>
            <button type="default" @click="updateRoom">修改房间名称</button>
            <button type="default" @click="updateIcon">自定义房间背景图</button>
            <button type="default" @click="addDevice">添加设备到房间</button>
            <button type="default" @click="removeDevice">从房间中移除设备</button>
            <button type="default" @click="addGroup">添加群组到房间</button>
            <button type="default" @click="removeGroup">从房间中移除群组</button>
            <button type="default" @click="moveDevGroupListFromRoom">批量修改房间与群组和设备的关系</button>
            <button type="default" @click="addMember">添加家庭成员</button>
            <button type="default" @click="removeMember">移除家庭成员</button>
            <button type="default" @click="queryMemberList">查询家庭成员列表</button>
            <button type="default" @click="updateMember">更新家庭成员的信息</button>
            <button type="default" @click="getInvitationMessage">查询添加家庭成员邀请码</button>
            <button type="default" @click="joinHomeByInviteCode">通过邀请码加入一个家庭</button>
            <button type="default" @click="cancelMemberInvitationCode">撤销家庭邀请</button>
            <button type="default" @click="processInvitation">接受或拒绝家庭邀请</button>
            <button type="default" @click="getInvitationList">查询邀请成员记录</button>
            <button type="default" @click="updateInvitedMember">修改被邀请者信息</button>
        </div>
    </view>
</template>

<script>
    var homeModule = uni.requireNativePlugin("XM-TuyaHomeModule");
    const modal = uni.requireNativePlugin('modal');
    export default {
        data() {

        },
        methods: {
            //创建家庭
            createHome() {
                homeModule.createHome({
                    /**
                    name    家庭名称,最多支持 25 个字符
                    lon 经度,如果不设置家庭位置信息,请设置为 0
                    lat 纬度,如果不设置家庭位置信息,请设置为 0
                    geoName 家庭地理位置名称
                    rooms   房间列表 List<String> rooms
                     */
                    name: '',
                    lon: 120.52,
                    lat: 30.40,
                    geoName: '',
                    rooms: ['111', '222']
                }, (resp) => {
                    console.log("createHome callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //查询家庭列表
            queryHomeList() {
                homeModule.queryHomeList((resp) => {
                    console.log("queryHomeList callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //新增一个家庭监听
            registerTuyaHomeChangeListener() {
                homeModule.registerTuyaHomeChangeListener((resp) => {
                    console.log("registerTuyaHomeChangeListener callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //删除一个家庭监听
            unRegisterTuyaHomeChangeListener() {
                homeModule.unRegisterTuyaHomeChangeListener()
            },
            //查询家庭详细信息
            getHomeDetail() {
                homeModule.getHomeDetail({
                    homeId: ''
                }, (resp) => {
                    console.log("getHomeDetail callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //查询家庭离线的详细信息
            getHomeLocalCache() {
                homeModule.getHomeLocalCache({
                    homeId: ''
                }, (resp) => {
                    console.log("getHomeLocalCache callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //修改家庭信息
            updateHome() {
                homeModule.updateHome({
                    /**
                    name    家庭名称,最多支持 25 个字符
                    lon 当前家庭的经度
                    lat 当前家庭的纬度
                    geoName 地理位置的地址
                    rooms   房间信息
                     */
                    homeId: ''
                }, (resp) => {
                    console.log("updateHome callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //查询家庭天气的简要参数
            getHomeWeatherSketch() {
                homeModule.getHomeWeatherSketch({
                    /**
                    lon 经度
                    lat 纬度
                     */
                    homeId: ''
                }, (resp) => {
                    console.log("getHomeWeatherSketch callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //查询家庭天气的详细参数
            getHomeWeatherDetail() {
                homeModule.getHomeWeatherDetail({
                    /**
                    limit   查询的数量
                    unit    单位,详细见下表说明
                     */
                    homeId: ''
                }, (resp) => {
                    console.log("getHomeWeatherDetail callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //注销家庭
            dismissHome() {
                homeModule.dismissHome({
                    /**
                    limit   查询的数量
                    unit    单位,详细见下表说明
                     */
                    homeId: ''
                }, (resp) => {
                    console.log("dismissHome callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //设置家庭中设备和群组的顺序
            sortDevInHome() {
                homeModule.sortDevInHome({
                    /**
                    homeId  家庭 ID
                    list    房间或者群组列表。元素 DeviceAndGroupInHomeBean 包含两个字段:
                    bizType:被排序的对象的类型,例如是群组或者设备,是一个整数类型的枚举,参考 BizParentTypeEnum 对象
                    bizId:被排序的对象的 ID,例如群组 ID 或者设备 ID
                     */
                    homeId: ''
                }, (resp) => {
                    console.log("sortDevInHome callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //注册或注销家庭信息变更的监听
            registerHomeStatusListener() {
                homeModule.registerHomeStatusListener({
                    homeId: ''
                }, (resp) => {
                    console.log("registerHomeStatusListener callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //注册或注销家庭信息变更的监听
            unRegisterHomeStatusListener() {
                homeModule.unRegisterHomeStatusListener({
                    homeId: ''
                });
            },
            //新增房间
            addRoom() {
                homeModule.addRoom({
                    homeId: '',
                    name: ''
                }, (resp) => {
                    console.log("addRoom callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //删除房间
            removeRoom() {
                homeModule.removeRoom({
                    homeId: '',
                    roomId: ''
                }, (resp) => {
                    console.log("removeRoom callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //房间排序
            sortRoom() {
                homeModule.sortRoom({
                    homeId: '',
                    idList: [] //long
                }, (resp) => {
                    console.log("sortRoom callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //根据设备查询房间信息
            getDeviceRoomBean() {
                var resp = homeModule.getDeviceRoomBean({
                    devId: ''
                });
                console.log("getDeviceRoomBean callback:" + JSON.stringify(resp));
                uni.showToast({
                    title: '调用异步方法 ' + JSON.stringify(resp),
                    icon: "none"
                })
            },
            //修改房间名称
            updateRoom() {
                homeModule.updateRoom({
                    roomId: 0,
                    name: '' //long
                }, (resp) => {
                    console.log("updateRoom callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //自定义房间背景图
            updateIcon() {
                homeModule.updateIcon({
                    roomId: 0,
                    filePath: '' //long
                }, (resp) => {
                    console.log("updateIcon callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //添加设备到房间
            addDevice() {
                homeModule.addDevice({
                    roomId: 0,
                    devId: '' //long
                }, (resp) => {
                    console.log("addDevice callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //从房间中移除设备
            removeDevice() {
                homeModule.removeDevice({
                    roomId: 0,
                    devId: '' //long
                }, (resp) => {
                    console.log("removeDevice callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //添加群组到房间
            addGroup() {
                homeModule.addGroup({
                    roomId: 0,
                    groupId: 0 //long
                }, (resp) => {
                    console.log("addGroup callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //从房间中移除群组
            removeGroup() {
                homeModule.removeGroup({
                    roomId: 0,
                    groupId: 0 //long
                }, (resp) => {
                    console.log("removeGroup callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //批量修改房间与群组和设备的关系
            moveDevGroupListFromRoom() {
                homeModule.moveDevGroupListFromRoom({
                    roomId: 0,
                    list: [],
                    /**
                        id  String  设备或者群组 ID
                        type    int 类型
                        6:设备
                        5:群组
                     */
                }, (resp) => {
                    console.log("moveDevGroupListFromRoom callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //添加家庭成员
            addMember() {
                homeModule.addMember({
                    /**
                        homeId  long    要添加成员的家庭的 ID
                        nickName    String  为受邀请者设置的昵称
                        admin   boolean 是否为家庭管理员
                        memberId    long    家庭成员 ID
                        headPic String  为受邀请者设置的头像 nil 时使用受邀请者个人头像
                        account String  受邀请账号
                        countryCode String  受邀请者账号对应的国家或地区码
                        invitationCode  String  邀请码
                        role    int 成员角色(参考 MemberRole 定义类型)
                        autoAccept  boolean 是否需要受邀请者同意接受加入家庭邀请:
                        true:受邀请账号自动接受家庭加入邀请
                        false:需要受邀请者同意后,才可加入家庭
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("addMember callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //移除家庭成员
            removeMember() {
                homeModule.removeMember({
                    memberId: 0
                }, (resp) => {
                    console.log("removeMember callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //查询家庭成员列表
            queryMemberList() {
                homeModule.queryMemberList({
                    mHomeId: 0
                }, (resp) => {
                    console.log("queryMemberList callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //更新家庭成员的信息
            updateMember() {
                homeModule.updateMember({
                    /**
                        homeId  long    要添加成员的家庭的 ID
                        nickName    String  为受邀请者设置的昵称
                        admin   boolean 是否为家庭管理员
                        memberId    long    家庭成员 ID
                        headPic String  为受邀请者设置的头像 nil 时使用受邀请者个人头像
                        account String  受邀请账号
                        countryCode String  受邀请者账号对应的国家或地区码
                        invitationCode  String  邀请码
                        role    int 成员角色(参考 MemberRole 定义类型)
                        autoAccept  boolean 是否需要受邀请者同意接受加入家庭邀请:
                        true:受邀请账号自动接受家庭加入邀请
                        false:需要受邀请者同意后,才可加入家庭
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("updateMember callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //查询添加家庭成员邀请码
            getInvitationMessage() {
                homeModule.getInvitationMessage({
                    homeId: 0
                }, (resp) => {
                    console.log("getInvitationMessage callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //通过邀请码加入一个家庭
            joinHomeByInviteCode() {
                homeModule.joinHomeByInviteCode({
                    code: ''
                }, (resp) => {
                    console.log("joinHomeByInviteCode callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //撤销家庭邀请
            cancelMemberInvitationCode() {
                homeModule.cancelMemberInvitationCode({
                    code: ''
                }, (resp) => {
                    console.log("cancelMemberInvitationCode callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //接受或拒绝家庭邀请
            processInvitation() {
                homeModule.processInvitation({
                    homeId: '',
                    action: ''
                }, (resp) => {
                    console.log("processInvitation callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //查询邀请成员记录
            getInvitationList() {
                homeModule.getInvitationList({
                    homeId: '',
                    action: ''
                }, (resp) => {
                    console.log("getInvitationList callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            },
            //修改被邀请者信息
            updateInvitedMember() {
                homeModule.updateInvitedMember({
                    /**
                    invitationId    邀请 ID
                    memberName  受邀者昵称
                    memberRole  受邀者在家庭下的角色
                     */
                    invitationId: 0
                }, (resp) => {
                    console.log("updateInvitedMember callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                });
            }
        }
    }
</script>

3、设备管理和配网

<template>
    <div>
        <button type="default" @click="getActivatorToken">获取配网 Token</button>
        <button type="default" @click="newActivator">开始WiFi热点配网</button>
        <button type="default" @click="stopActivator">停止WiFi热点配网</button>
        <button type="default" @click="destroyActivator">销毁WiFi热点配网</button>
        <button type="default" @click="startLeScan">开始扫描蓝牙设备</button>
        <button type="default" @click="getActivatorDeviceInfo">查询设备名称</button>
        <button type="default" @click="stopLeScan">停止扫描</button>
        <button type="default" @click="startActivator">开始单点设备入网</button>
        <button type="default" @click="stopBleConfig">取消单点设备入网</button>
        <button type="default" @click="startActivatorMultiMode">双模设备入网</button>
        <button type="default" @click="stopActivatorMultiMode">取消双模设备配网</button>
        <button type="default" @click="startWifiEnable">蓝牙兜底双模设备连云</button>
        <button type="default" @click="getIsOnline">判断设备在线状态</button>
        <button type="default" @click="isBleLocalOnline">查询设备蓝牙是否本地连接</button>
        <button type="default" @click="connectBleDevice">连接离线设备</button>
        <button type="default" @click="disconnectBleDevice">断开连接设备</button>
        <button type="default" @click="requestUpgradeInfo">检查固件信息</button>
        <button type="default" @click="startBleOta">OTA 升级</button>
        <button type="default" @click="registerDevListener">注册设备监听</button>
        <button type="default" @click="unRegisterDevListener">取消设备监听</button>
        <button type="default" @click="getDp">查询设备信息</button>
        <button type="default" @click="publishDps">设备控制</button>
        <button type="default" @click="renameDevice">修改设备名称</button>
        <button type="default" @click="removeDevice">移除设备</button>
        <button type="default" @click="resetFactory">恢复出厂设置</button>
        <button type="default" @click="requestWifiSignal">查询 Wi-Fi 信号强度</button>
        <button type="default" @click="onDestroyDevice">回收设备资源</button>
        <button type="default" @click="getOtaInfo">查询固件升级信息</button>
        <button type="default" @click="startOta">开始固件升级</button>
        <button type="default" @click="onDestroy">结束升级</button>
        <button type="default" @click="requestWithApiName">通用接口,带 Session 的接口</button>
        <button type="default" @click="requestWithApiNameWithoutSession">通用接口,不带 Session 的接口</button>
    </div>
</template>

<script>
    var configModule = uni.requireNativePlugin("XM-TuyaConfigModule");
    const modal = uni.requireNativePlugin('modal');
    export default {
        data() {

        },
        methods: {
            //获取配网 Token
            getActivatorToken() {
                configModule.getActivatorToken({
                    homeId: 0
                }, (resp) => {
                    console.log("getActivatorToken callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //开始WiFi热点配网
            newActivator() {
                configModule.newActivator({
                    /**
                    token   配网所需要的激活 Token
                    ssid    配网之后,设备工作 Wi-Fi 的名称
                    password    配网之后,设备工作 Wi-Fi 的密码
                    activatorModel  配网模式,快连模式:ActivatorModelEnum.TY_AP
                    timeout 配网的超时时间设置,默认是 100s,单位是秒
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("newActivator callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //停止WiFi热点配网
            stopActivator() {
                configModule.stopActivator()
            },
            //销毁WiFi热点配网
            destroyActivator() {
                configModule.destroyActivator()
            },
            //开始扫描蓝牙设备
            startLeScan() {
                configModule.startLeScan({
                    timeout: 10000,
                    types: ['SINGLE', 'SIG_MESH'],
                    filter: true
                    /**
                    setTimeout()    long    设置超时时间
                    默认:40000;单位:毫秒  可选
                    addScanType()   ScanType    
                    SINGLE:点对点蓝牙设备
                    MESH:涂鸦自研协议的 Mesh 设备
                    SIG_MESH:标准蓝牙 Mesh 设备
                    SINGLE_QR:扫码配网设备。
                    必需
                    setRepeatFilter()   boolean 重复过滤,默认:true    可选
                     */
                }, (resp) => {
                    console.log("startLeScan callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //查询设备名称
            getActivatorDeviceInfo() {
                configModule.getActivatorDeviceInfo({
                    /**
                    productId   String  ScanDeviceBean.getProductId
                    uuid    String  ScanDeviceBean.getUuid
                    mac String  ScanDeviceBean.getMac 该值一般设备为 null,只有某些品类有值
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("getActivatorDeviceInfo callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //停止扫描
            stopLeScan() {
                configModule.stopLeScan()
            },
            //开始单点设备入网
            startActivator() {
                configModule.startActivator({
                    /**
                    homeId  long    当前家庭 ID 必需
                    uuid    String  设备 UUID,通过扫描可以查询    必需
                    address String  设备地址,通过扫描可以查询   可选
                    productId   String  产品 ID,通过扫描可以查询  可选
                    deviceType  Integer 设备类型,通过扫描可以查询   必需
                    isShare boolean 是否为共享设备,通过扫描可以查询,默认为 false  可选
                    timeout long    配网总超时,配网超时失败以该参数为准。
                    单位:毫秒,默认:60000  可选
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("startActivator callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //取消单点设备入网
            stopBleConfig() {
                configModule.stopBleConfig({
                    /**
                    uuid    String  设备 UUID,通过扫描可以查询    必需
                     */
                    uuid: ''
                })
            },
            //双模设备入网
            startActivatorMultiMode() {
                configModule.startActivatorMultiMode({
                    /**
                    deviceType  Integer 设备类型,通过扫描可以查询
                    uuid    String  设备 UUID,通过扫描可以查询
                    address String  设备地址,通过扫描可以查询
                    mac String  设备 Mac,通过扫描可以查询
                    ssid    String  Wi-Fi SSID
                    pwd String  Wi-Fi 密码
                    token   String  配网 Token,获取 Token 的方式与 Wi-Fi 设备配网一致,请参考 获取 Token
                    homeId  long    当前家庭的 ID
                    timeout long    配网总超时,配网超时失败以该参数为准,单位为毫秒
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("startActivatorMultiMode callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //取消双模设备配网
            stopActivatorMultiMode() {
                configModule.stopActivatorMultiMode({
                    /**
                    uuid    String  设备 UUID,通过扫描可以查询    必需
                     */
                    uuid: ''
                })
            },
            //蓝牙兜底双模设备连云
            startWifiEnable() {
                configModule.startWifiEnable({
                    /**
                    timeout long    设备重连 Wi-Fi 云端激活超时时长,单位为 ms
                    ssid    String  需要连接的 Wi-Fi SSID
                    pwd String  需要连接的 Wi-Fi 密码,若无密码则传空字符串
                    devId   Long    需要开启 Wi-Fi 使能的设备 ID
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("startWifiEnable callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //判断设备在线状态
            getIsOnline() {
                var resp = configModule.getIsOnline()
                console.log("getIsOnline callback:" + JSON.stringify(resp));
                uni.showToast({
                    title: '调用异步方法 ' + JSON.stringify(resp),
                    icon: "none"
                })
            },
            //查询设备蓝牙是否本地连接
            isBleLocalOnline() {
                var resp = configModule.isBleLocalOnline()
                console.log("isBleLocalOnline callback:" + JSON.stringify(resp));
                uni.showToast({
                    title: '调用异步方法 ' + JSON.stringify(resp),
                    icon: "none"
                })
            },
            //连接离线设备
            connectBleDevice() {
                configModule.connectBleDevice({
                    /**
                    builderList List    BleConnectBuilder 集合,用于构建需要连接设备的设置
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("connectBleDevice callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //断开连接设备
            disconnectBleDevice() {
                configModule.disconnectBleDevice({
                    /**
                    builderList List    BleConnectBuilder 集合,用于构建需要连接设备的设置
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("disconnectBleDevice callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //检查固件信息
            requestUpgradeInfo() {
                configModule.requestUpgradeInfo({
                    /**
                    devId   String  需要升级的设备 ID
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("requestUpgradeInfo callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //OTA 升级
            startBleOta() {
                configModule.startBleOta({
                    /**
                    uuid    String  需要升级的设备 UUID,可通过 deviceBean.getUuid() 查询
                    type    int 
                    0:蓝牙固件升级,此时 BLEUpgradeBean.type = 1
                    1:MCU 升级,此时 BLEUpgradeBean.type = 9
                    version String  新固件版本号
                    binPackagePath  String  下载到本地的固件的路径
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("startBleOta callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //注册设备监听
            registerDevListener() {
                configModule.registerDevListener({
                    devId: ''
                }, (resp) => {
                    console.log("registerDevListener callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //取消设备监听
            unRegisterDevListener() {
                configModule.unRegisterDevListener({
                    devId: ''
                })
            },
            //查询设备信息
            getDp() {
                configModule.getDp({
                    devId: '',
                    dpId: ''
                }, (resp) => {
                    console.log("getDp callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            publishDps() {
                tuya.publishDps({
                    devId: 0,
                    dps: {
                        101: true
                    } //json参数
                }, (resp) => {
                    console.log("startBleOta callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //修改设备名称
            renameDevice() {
                configModule.renameDevice({
                    devId: '',
                    name: ''
                }, (resp) => {
                    console.log("renameDevice callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //移除设备
            removeDevice() {
                configModule.removeDevice({
                    devId: ''
                }, (resp) => {
                    console.log("removeDevice callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //恢复出厂设置
            resetFactory() {
                configModule.resetFactory({
                    devId: ''
                }, (resp) => {
                    console.log("resetFactory callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //查询 Wi-Fi 信号强度
            requestWifiSignal() {
                configModule.requestWifiSignal({
                    devId: ''
                }, (resp) => {
                    console.log("requestWifiSignal callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //回收设备资源
            onDestroyDevice() {
                configModule.onDestroyDevice({
                    devId: ''
                })
            },
            //查询固件升级信息
            getOtaInfo() {
                configModule.getOtaInfo({
                    /**
                     * meshId   Zigbee 网关 ID
                    devId   Zigbee 子设备 ID
                    nodeId  Zigbee 子设备 Mac 地址,可以从子设备的 DeviceBean 查询
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("startBleOta callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //开始固件升级
            startOta() {
                configModule.startOta({
                    /**
                     * meshId   Zigbee 网关 ID
                    devId   Zigbee 子设备 ID
                    nodeId  Zigbee 子设备 Mac 地址,可以从子设备的 DeviceBean 查询
                     */
                    homeId: 0
                }, (resp) => {
                    console.log("startBleOta callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            //结束升级
            onDestroy() {
                configModule.onDestroy()
            },
            requestWithApiName() {
                tuya.requestWithApiName({
                    apiName: '',
                    version: ''
                    params: {

                    } //postData
                }, (resp) => {
                    console.log("startBleOta callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            },
            requestWithApiNameWithoutSession() {
                tuya.requestWithApiNameWithoutSession({
                    apiName: '',
                    version: ''
                    params: {

                    } //postData
                }, (resp) => {
                    console.log("startBleOta callback:" + JSON.stringify(resp));
                    uni.showToast({
                        title: '调用异步方法 ' + JSON.stringify(resp),
                        icon: "none"
                    })
                })
            }
        }
</script>

<style>

</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

android: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" android:required="false" /> <!-- 网络 --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.WAKE_LOCK" android:required="false" /> iOS: 蓝牙、Wi-Fi

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件使用的 涂鸦 SDK可能会采集数据,详情可参考:https://developer.tuya.com/cn/

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问