首先吐槽一下微信文档太分散,各种难找....
先列一下需要用到的一些官方文档:
后端开发:
一、微信硬件平台 :http://iot.weixin.qq.com/wiki/document-2_1.html
前端开发:
一、微信JSSDK(通用api,不分使用场景):
https://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
二、微信JSAPI(微信硬件jsapi是专门用来给微信硬件) :
http://iot.weixin.qq.com/wiki/new/index.html?page=4-7
三、微信网页端调试工具:
http://mp.weixin.qq.com/debug/
参考文档:
1、 (简单说明,对一些名词有一定的解解)
2、http://www.vxzsk.com/87.html (建议看这个,详细全流程说明)
开始之前,先用面向对象,分析一下在微信中打开的H5页面连接AirSync,有哪些对象,如下图:
对于这个图中,各个对象就不多解解了,但强调一点,留意到『微信app』这边会做一个分流,就是区分应该与『厂商HTML』通信,还是与『厂商服务器』通信,通过蓝牙模块设备的type值来做判断的(当type为空或者等于0时,表示发送给厂商服务器【图中黑箭头流程】;当type为10001时,表示发送给微信客户端html5界面【图中红箭头流程】),所以有人遇到H5页面如何都收不到设备的消息,就要注意检查这个值了,这个坑好大。官方文档
关于申请设备、公众号配置的可参考这里详细的说明,我这只描述关键的业务流程,直接上图:
需要特别注意的是,用户最终都是需要与设备绑定后才可以连接、通信;而微信支持两种绑定的业务模式:
一、通过每个机器唯一的二维码绑定,应用场景为:
1、厂家在微信公众后台(mp.weixin.qq.com)批量申请设备id(deviceId),也可以自定义生成的;
2、通过特定的方式,为每一台实际生产的设备与上一步中申请的 deviceId关联;
3、再通过『获取设备二维码』接口,取得设备的二维码,并贴在设备外壳上;
4、用户通过微信扫描二维码,可直接关注并绑定该设备。
好处在于将公众号与绑定设备在一个操作中完成了,提前做了绑定,用户连接时方便,进入公众号即可自动发现并连接,H5页面只要发送数据即可。
二、用户连接时才绑定,参考流程图中『没有绑定设备』的过程。