# weex接入物模型1.0开发指引

# weex开发接入步骤说明

  1. 配置设备物模型1.0的能力定义(这是前提条件)

  2. weex插件内控制设备,发起物模型1.0设备的操作

注意

以下都是示范URL,具体URL应该要根据操作而定。 接口格式为:/v1/appliance/operation/物模型1.0{actionName}/{applianceCode},actionName为操作的标识,applianceCode为设备code

下面示例中展示了如何进行POST调用来发起设备控制,以操作testpost为例:

    //老框架调用方式
    nativeService.sendCentralCloundRequest('/v1/appliance/operation/testpost/3298544979388', {
        method: 'POST',
        data: {
            workSwitch: true,
            controlSrc: 2,
            menuId: 9
        }
    }).then(res => {
        res = typeof res === 'string' ? JSON.parse(res) : res
        if(res.code == 0){
            nativeService.alert(`指令执行成功,返回结果${JSON.stringify(res)}`)
        }else{
            nativeService.alert(`指令执行失败,返回结果${JSON.stringify(res)}`)
        }
    })

    //新框架调用方式
    this.$bridge
        .sendCentralCloundRequest('/v1/appliance/operation/testpost/3298544979388', {
            method: 'POST',
            data: {
                workSwitch: true,
                controlSrc: 2,
                menuId: 9
            }
        }).then(res => {
            res = typeof res === 'string' ? JSON.parse(res) : res
            if(res.code == 0){
                nativeService.alert(`指令执行成功,返回结果${JSON.stringify(res)}`)
            }else{
                nativeService.alert(`指令执行失败,返回结果${JSON.stringify(res)}`)
            }
        })

下面示例中展示了如何进行GET调用来发起设备查询,以操作voltageQuery为例:

    //老框架调用方式
    nativeService.sendCentralCloundRequest('/v1/appliance/operation/voltageQuery/3298544979388', {
        method: 'GET',
    }).then(res => {
        res = typeof res === 'string' ? JSON.parse(res) : res
        if(res.code == 0){
            nativeService.alert(`指令执行成功,返回结果${JSON.stringify(res)}`)
        }else{
            nativeService.alert(`指令执行失败,返回结果${JSON.stringify(res)}`)
        }
    })

    //新框架调用方式
    this.$bridge
        .sendCentralCloundRequest('/v1/appliance/operation/voltageQuery/3298544979388', {
            method: 'GET',
        }).then(res => {
            res = typeof res === 'string' ? JSON.parse(res) : res
            if(res.code == 0){
                nativeService.alert(`指令执行成功,返回结果${JSON.stringify(res)}`)
            }else{
                nativeService.alert(`指令执行失败,返回结果${JSON.stringify(res)}`)
            }
        })

下面示例中展示了如何进行PUT调用来发起设备控制,以操作lowSugarRice为例:

    //老框架调用方式
    nativeService.sendCentralCloundRequest('/v1/appliance/operation/lowSugarRice/3298544979388', {
        method: 'PUT',
        data: {
            workSwitch: true,
            controlSrc: 2,
            menuId: 71
        }
    }).then(res => {
        res = typeof res === 'string' ? JSON.parse(res) : res
        if(res.code == 0){
            nativeService.alert(`指令执行成功,返回结果${JSON.stringify(res)}`)
        }else{
            nativeService.alert(`指令执行失败,返回结果${JSON.stringify(res)}`)
        }
    })

    //新框架调用方式
    this.$bridge
        .sendCentralCloundRequest('/v1/appliance/operation/lowSugarRice/3298544979388', {
            method: 'PUT',
            data: {
                workSwitch: true,
                controlSrc: 2,
                menuId: 71
            }
        }).then(res => {
            res = typeof res === 'string' ? JSON.parse(res) : res
            if(res.code == 0){
                nativeService.alert(`指令执行成功,返回结果${JSON.stringify(res)}`)
            }else{
                nativeService.alert(`指令执行失败,返回结果${JSON.stringify(res)}`)
            }
        })
  1. weex插件内监听事件,接受物模型1.0的消息通知
    //老框架监听方式
    const globalEvent = weex.requireModule('globalEvent')
    globalEvent.addEventListener('receiveMessageFromApp', data => {
        //物模型1.0使用此messageType,详细数据在data.messageBody中
        if(data.messageType === 'pushNotificationForwarding'){
            nativeService.alert(`操作数据${JSON.stringify(data.messageBody)}`)
        }
    })

    //新框架监听方式
    this.$bridge.addEventListener('receiveMessageFromApp', data => {
        //物模型1.0使用此messageType,详细数据在data.messageBody中
        if(data.messageType === 'pushNotificationForwarding'){
            nativeService.alert(`操作数据${JSON.stringify(data.messageBody)}`)
        }
    })

注意

物模型1.0事件消息的messageType为pushNotificationForwarding。

# 相关文档说明

  1. weex使用发送接口 (opens new window)
最后修改于: 2024-11-29