微信硬件蓝牙

调用微信jsapi完成公众号蓝牙蓝牙传输功能(测试版)

一、第一阶段:首先要在微信测试号申请一个产品(得到产品的id号)

二、 第二阶段:微信后台基本设置,需要通过在线接口调试去设置

  1. 回到微信主页,依次点击"开发者工具"进入“在线接口调试工具”(http://mp.weixin.qq.com/debug

     
     
    然后会看到这样的界面:
     
     
  2. 在“在线接口调试工具”页面按照如图所示填入自己在第一阶段的测试账号的appID和appsecret的内容(吐槽:一会儿又appID,这里又appid,上面appsecret这里secret,就不能规范一点吗?):


     
     

    并点击检查问题(吐槽:其实就是提交请求的设置,不知道为什么按钮名称会叫“检查问题”)。点击后倘若成功的话会在页面下面返回有如图所示的包含access_token的字段信息(若返回了error,请仔细检查appID和appsecret是否都写对了,这里要写测试账号的哦,因为我们第一阶段的设置都是设置的测试账号的):


     
     
    并记录下获取到的access_token值(吐槽:哈哈,笑死我了,access_token太长,显示超出他的样式表了,就不能自动换行显示吗?非要我鼠标拖动浏览器的左右滚动条才能看完)
  3. 向上滚动鼠标到这个界面,并填写如图所示内容,其中的access_token填写刚才获取到的那个字符串并在末尾加上&product_id=21816(注意,这个数字是在第一阶段的第7步所得到的那个,这里的21816是我自己的,需要填写自己对应的那个)。


     
     

    同样,点击“检查问题”,得到如下图所示的内容:


     
     
    注意记录下deviceid和qrticket的值(吐槽:已经受不了微信的命名规范问题了)。
  4. 向上滚动鼠标到这个界面,并填写如图所示内容,其中的access_token栏会自动根据你上次操作而自动填写上,这里可以把“&product_id=21816”这几个字符删除。若没有自动填写,那就手动填写一下步骤2获取到的access_token值吧。


     
     

    body填写的是一个json对象,目的是把你的蓝牙设备在微信后台进行注册,不然微信到时候是不会自动去连接你的蓝牙设备的。
    body内容及参数解释:

{ 
    "device_num": "1",  //这里填写注册设备的个数,必须和device_list中的
    "device_list": [        
     {
            "id": "gh_dd58c7bef8e7_b00fef105fd4269f", //填写步骤3获取到的deviceid
            "mac": "209148B74D40",    //填写你的设备的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"    
  }
],   
"op_type": "0", //0表示新注册设备信息,1表示更新(修改)设备信息,当要修改的时候就写1。
"product_id": "21543"//填写设备所属的产品id,就是第一阶段所添加的那个产品的product_id
}

然后点击“检查问题”,得到如下回复:


 
QQ截图20160814115053.png

倘若得到的回复是error alredy exist的失败字样,可以把op_type的值更改为“1”。若出现account quota not enough,请检查product_id是否填写正确。

  1. 进入百度搜索“在线二维码”,根据个人喜好选择一个二维码平台,制作二维码。这里选择的是“草料二维码”,如图:


     
    QQ截图20160814120212.png

    图中红色的url是步骤3获取到的qrticket。复制填入即可。然后点击“生成二维码”即可,然后图中右边的就是该设备的绑定二维码,用微信扫描,并点击“绑定设备”,然后点击“进入公众号”。这个时候在公众号(测试号)顶部标题栏会显示灰白色的“连接中”或“已连接1个设备”等相关信息(记得打开手机蓝牙和蓝牙外设)。

三、第三阶段:调用微信jsapi进行数据传输(前两个都是准备阶段)

       

wx.ready(function(){

//初始化设备
wx.invoke('openWXDeviceLib', {'brandUserName':'测试号的appid'}, function(res){});

//连接蓝牙
wx.invoke('connectWXDevice', {
'deviceId' :
设备的授权id(生成二维码时候一同出现的)
,
'connType' : 'ble'
}, function(res) {
//alert(JSON.stringify(res));
//向蓝牙发送命令
wx.invoke(
'sendDataToWXDevice',
{
'deviceId' : 设备的授权id(生成二维码时候一同出现的),
'connType' : 'ble',
'base64Data' : '要发送的数据'
}, function(res) {
var data=JSON.stringify(res);
var json = eval("(" + data + ")");
//alert(json.err_msg);
if(json.err_msg=="sendDataToWXDevice:ok"){
//接收到设备传来的数据
wx.on('onReceiveDataFromWXDevice',function(res) {
//alert(JSON.stringify(res));
var data = JSON.stringify(res);
var json = eval("(" + data + ")");

alert(json.base64Data);
});
}else{
alert("错误提示!");
}
});
});

//错误提示
wx.error(function(res){
alert("wx.error错误:"+JSON.stringify(res));
//如果初始化出错了会调用此方法,没什么特别要注意的
});

});

原文地址:https://www.cnblogs.com/blange/p/8072697.html