对于微信蓝牙设备未接收到设备数据包的原因,总结原因如下,首先我们看微信蓝牙设备的架构图。
第一、微信硬件设备开发方向分为两种类型,第一种类型的数据传输方向为黑色箭头方向,第二种类型的数据传输方向为红色箭头方向。
第二、红色箭头 Html通过Jsapi可以和设备本地收发数据(即Html发送给微信客户端,微信客户端发给设备,设备把数据返回到html上),无需通过服务器中转。也就是说在html页面,我们可以通过调用微信onReceiveDataFromWXDevice 接收设备数据函数就能接收到设备返回来的数据。
第三、黑色箭头 html通过jsapi向设备发送数据,但是设备在处理完所发送的命令返回数据的时候,并没有返回到html界面,而是返回到我们配置的服务器url上的post方法里面了。这也是导致好多初学者在测试设备的时候,调用接收设备函数onReceiveDataFromWXDevice 无论如何也始终触发不了,那么如何确定设备返回的数据返回到服务器端呢。
--------------那么如何验证设备返回的消息走的是黑色箭头呢,其实很容易实现。。。------------------------------
登录微信公众平台------》设备功能-----》设置,然后配置URL服务器地址,,这个地址和咱们接入微信公众平台基本配置的服务器地址原理是一样的,但是并不是同一个地址,你可以单独在写一个验证地址,,。
然后在此地址里面的post方法里打印输出一段日志,,然后操作设备看是否日志有输出,如果有就代表着走的是黑色箭头通信路径。反之走的是红色箭头路径
1,在这个红色圈 post方法里 打印一下日志看每次发送命令是否有输出 如果有 那就是硬件设备 的类型为返回服务器端。
2,联系硬件设备提供商,让他们那边的硬件工程师修改芯片程序,芯片程序返回路径其实微信官方文档有说明,一种路径是返回服务器端,另一种路径是返回到html端,其实好多硬件设备商第一次返回都是服务器端,因为这是微信默认的,开发人员有时候并不注意这一点。
3,关于返回路径我们软件开发人员是无能为力的,只能返厂修改芯片程序。
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程