了解更多开源内容请访问:开源基础软件社区https://ost.51cto.com1.NANMessage接口介绍回到设备控制原子化服务指南,我们可以看到目前提供了JAVA和JS接口,用于向设备发送消息(建立NAN通道)。该模板使用JAVA接口,开发者可以在NetworkDeviceDataHandler中调用该模板。如下:privatevoidsendMessage(Stringmessage,HashMaptmpMap){CommonInfocommonInfo=newCommonInfo();commonInfo.setSessionId(sessionId);HiLog.error(LABEL_LOG,"sessionId"+sessionId);NetConfigApi.getInstance().sendMessage(commonInfo,message,(code,controlMessage,str)->{if(code==0){HiLog.info(LABEL_LOG,"消息发送成功"+message);dataMap.putAll(tmpMap);mainHandler.postTask(()->onDeviceDataChange(dataMap));}else{HiLog.error(LABEL_LOG,"发送消息失败。Code="+code+"controlmessage="+controlMessage);}});}JAVA实现功能需要在js页面之间传递数据,定义一系列规则,比较繁琐。如果添加命令传输,则必须添加约定规则。JS更加灵活,提供的JS接口如下:JS接口:NetConfig.sendMessage(commonInfo,message,callbackFunc)依赖:需要在导入模板工程中被fa-netconfig.js调用。注意:commonInfo中需要填写该配网路径的sessionId,由配网雾化服务获取。message是发送到设备的字符串消息。callbackFunc是消息发送成功与否的回调。示例:letcommonInfo={sessionId:getApp(this).ConfigParams.deviceInfo.sessionId}getApp(this).NetConfig.sendMessage(commonInfo,"111111",(result)=>{//sendMessage回调})其次,sendMessage()函数实现我们在jscontrol.js文件中添加sendMessage()函数,参考上面的说明和例子,写成如下://需要引入import{getApp}from'../../common.js';sendMessage(){varmessage=this.app_msg;让commonInfo={sessionId:getApp(this).ConfigParams.deviceInfo.sessionId};getApp(this).NetConfig.sendMessage(commonInfo,message,(result)=>{if(result.code==0){prompt.showToast({message:'发送成功'})}else{prompt.showToast({消息:'发送失败'})}});},3.关于绑定消息按钮的帖子【在自定义ui中】,我们自定义了一个开关。