微信硬件平台蓝牙打印机

方案一:

注意:这一步可以获取到设备ID和二维码,如果需要引用的可以通过二维码,而设备ID是微信后台生成的。


直接在浏览器中这样请求即可返回你需要的设备和二维码,上图只是为了大家更加明白这个是干嘛的:https://api.weixin.qq.com/device/getqrcode?access_token=TOKEN&product_id=产品ID




此接口会返回一个链接,用链接生成二维码。 用户扫描后,绑定设备。就会与设备绑定。  只有绑定后的设备微信才会主动连接 。


方案二:

1.设备授权

https://api.weixin.qq.com/device/create_qrcode?access_token=ZWcTAh_Ux2p2J6zhXeUt2cQZqMqjfShLbSTK661xrQYagO8ONtqG8LAh6jeTsNTjv7hu-ZsSQzlQOwubrsrmWgJDUa_WZVQH4muVZ75dhQGzBXdMK4lBc0FyHaeF35AKXZWjADANPM
参数:
{
    "device_num":"1",
    "device_list":[
    {
        "id":"设备Id",
        "mac":"Mac地址,不要包含冒号",
        "connect_protocol":"3",
        "auth_key":"",
        "close_strategy":"1",
        "conn_strategy":"1",
        "crypt_method":"0",
        "auth_ver":"0",
        "manu_mac_pos":"-1",
        "ser_mac_pos":"-2",
        "ble_simple_protocol": "0"
    }
    ],
    "op_type":"(0|1)0表示授权设备,1表示更新设备",
    "product_id": "产品类型Id(公众平台设备功能中产品ID)"

}

调用此接口后,在公众号主页面就会主动连接设备。

注意:这一步在链接中请求的设备ID可以用方案一中得到的设备ID,但是不一定要用 , 因为微信后台生成的是公众平台唯一ID加上后面的他生成的数据组成的。


完成上面的其中一个步骤后接着执行下面的方法:


1.页面上调用方法 
wx.invoke('startScanWXDevice', { "connType": "blue", "btVersion": 'ble' }, function (res) {
                    $('#result').append('开始扫描' + '\r\n');
                });
开始搜索周边设备,搜索到的结果会被onScanWXDeviceResult  监听到,其中会包含有设备Id和绑定状态


2.选择没有绑定设备,调用getWXDeviceTicket获取到ticket后,将ticket和设备Id,传入后台,代码如下:
 //绑定设备
            $("#bind").click(function () {
                wx.invoke('getWXDeviceTicket', { "deviceId": mac, 'type': '1' }, function (res) {
                    // $('#result').append(JSON.stringify(res) + '\r\n');
                    //获取ticket
                    var ticket = res.ticket;
                    $.ajax({
                        url: '/Test/Bind',
                        type: 'post',
                        data: { ticket: ticket, mac: mac },
                        success: function (data) {
                            console.log(JSON.stringify(data));
                        }
                    });
                });
            });
3.后台调用:https://api.weixin.qq.com/device/bind?access_token=ACCESS_TOKEN   参考页面地址:http://iot.weixin.qq.com/wiki/new/index.html?page=3-4-7   绑定的接口,完成设备和用户的绑定
4.绑定成功后,会被onWXDeviceBindStateChange监听到:
  wx.on('onWXDeviceBindStateChange',
            function (res) {
                //把res输出来看吧
                $('#result').append(JSON.stringify(res) + '\r\n');
            });
5.绑定后,IOS的设备就会主动连接设备了。

好了,下面开始给大家介绍坑。

为什么说IOS会主动连接设备呢?我想在这里说,他不光主动,还特么秒连,如果你们测试连接的时候,尽量找一个IOS手机放在身边,否则你连不上的时候大概就会以为是程序有问题了。 下面来讲讲安卓机,安卓机有时候连接得非常快,有时候会灰常灰常慢,或者直接连不上,任你想破脑袋,最终的结果就是,有时候还是连不上,经过研究发现,这个是因为当你进入微信对应的公众号时,上面有一个正在连接,或者是已连接0个设备,这个是因为微信会不断的去扫描设备,如果扫描到了,会直接请求配对,所以有时候我们没点页面中的扫描按钮就会出现已连接一个设备。开始说重点了 , 如果我们通过公众号,点击网页进入页面,点击扫描设备时,会发现身边的设备都扫描到了,会进入(onScanWXDeviceResult)这个监听函数中,但是连接有时候会连不到,但是扫描的那个函数虽然有时会扫描不到,但是公众号上方的那个不断的扫描和请求是一直都在执行的,如果它连接到设备了,那么你进入网页点扫描的时候会秒连。在这里就是想告诉大家,公众号上方的那个连接是一直都存在的。有时候忽然连上了也许就是它连上了。如果是一个公众号连接多个设备的时候(问题只存在安卓机)在连接中也只能连接一个设备的,连接上来的都是公众号上方的那个连接做的事。

在微信公众号连接设备中,虽然微信会不断的扫描,但是扫描到设备之后只会连接一次,而IOS一次就连接上了,安卓系统完全靠运气!


有不足之处,请大家踊跃发言,提出来大家一起学习,共同进步,让更多人少遇坑!




  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值