Heim  >  Artikel  >  WeChat-Applet  >  Unvollständiger Leitfaden zur WeChat-Hardware-JS-API-Entwicklung

Unvollständiger Leitfaden zur WeChat-Hardware-JS-API-Entwicklung

高洛峰
高洛峰Original
2017-02-09 09:28:521815Durchsuche

1. JS-Bibliothek vorstellen

 <script type=&#39;text/javascript&#39; src=&#39;//res.wx.qq.com/open/js/jweixin-1.0.0.js&#39;></script>

2. Konfigurationsinformationen in die Seite einfügen

wx.config({
    beta: true, // 开启内测接口调用,注入wx.invoke方法,非常重要!!必须有这个
    debug: true,//开启调试接口,alert运行结果
    appId: '',//必填,公众号的唯一标识,
    timestamp: '',//必填,生成签名的时间戳
    nonceStr: '',//必填,生成签名的随机串
    signature: '',//必填,签名
    jsApiList: []//要调用的js函数,必须把函数名字写入数组
});

Hier ist meine jsApiList

jsApiList: [
            'openWXDeviceLib',//初始化设备库(只支持蓝牙设备)
            'closeWXDeviceLib',//关闭设备库(只支持蓝牙设备)
            'getWXDeviceInfos',//获取设备信息(获取当前用户已绑定的蓝牙设备列表)
            'sendDataToWXDevice',//发送数据给设备
            'startScanWXDevice',//扫描设备(获取周围所有的设备列表,无论绑定还是未被绑定的设备都会扫描到)
            'stopScanWXDevice',//停止扫描设备
            'connectWXDevice',//连接设备
            'disconnectWXDevice',//断开设备连接
            'getWXDeviceTicket',//获取操作凭证
            'onWXDeviceBindStateChange',//微信客户端设备绑定状态被改变时触发此事件
            'onWXDeviceStateChange',//监听连接状态,可以监听连接中、连接上、连接断开
            'onReceiveDataFromWXDevice',//接收到来自设备的数据时触发
            'onScanWXDeviceResult',//扫描到某个设备时触发
            'onWXDeviceBluetoothStateChange',//手机蓝牙打开或关闭时触发
        ]

Wenn Sie testen möchten, ob die WeChat-Version diese APIs unterstützt, können Sie so schreiben:

 wx.checkJsApi({
    jsApiList: ['openWXDeviceLib', 'onScanWXDevicesResult', 'getWXDeviceInfos'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
    success: function (res) {
        console.log(res);

    }
});

3. Initialisieren Sie die Gerätebibliotheksfunktion

Erfolgreiche Verifizierung über die fertige Schnittstelle abwickeln

wx.ready(function () {          
    wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) {
        console.debug('openWXDeviceLib重新打开设备库==>');
        console.log(res);
    });
})

Fallstrick: Durch erneutes Scannen des Geräts kann überhaupt nichts gefunden werden, selbst ein Aktualisieren der Seite löst das Problem nicht

Methode: Rufen Sie vor jedem Scan zunächst closeWXDeviceLib auf, um die Gerätebibliothek zu schließen, und rufen Sie dann openWXDeviceLib auf, um die Gerätebibliothek zu öffnen. Dies entspricht einer Neuinitialisierung der Gerätebibliothek. Wenn Sie jetzt erneut scannen, können Sie das Gerät scannen.

Code:

wx.invoke("stopScanWXDevice", {}, function (res) {
    console.debug('stopScanWXDevice');
    console.log(res);
 });
wx.invoke("closeWXDeviceLib", {}, function (res) {
    console.debug('closeWXDeviceLib关闭设备库==>');
    console.log(res);
});

wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) {
    console.debug('openWXDeviceLib重新打开设备库==>');
    console.log(res);
});

4. Achten Sie auf die vom Gerät zurückgegebenen Informationen

wx.on('onReceiveDataFromWXDevice', function (res) {
    console.warn('onReceiveDataFromWXDevice=>');
    console.log(JSON.stringify(res));
});

5 Eine Nachricht an das Gerät

muss vor dem Senden und Empfangen von Daten eine Base64-Kodierung und -Dekodierung durchführen.
Hier verwende ich eine Bibliothek:

    <script type=&#39;text/javascript&#39; src=&#39;base64.js&#39;></script>

Quelle:
http://www.php.cn/

var data={"deviceId":deviceId,"base64Data": Base64.encode('你要发送的数据')};
console.log(data);
wx.invoke('sendDataToWXDevice',data , function(res){
    //回调
    console.info('发消息到设备sendMsg');
    console.log(data);
    console.log(res);
    $('#dataFromDevice').append('发送消息的结果:'+JSON.stringify(res));
    alert('已发送 请查看控制板');
});

Beschreibung:

1. Sie benötigen die entsprechende Gerätenummer auf WeChat, um die entsprechende API nutzen zu können.

2. Die API muss normal unter dem durch die Gerätenummer festgelegten sicheren Domänennamen verwendet werden

3. Alle console.log- und anderen Ausgaben an die Konsole in diesem Artikel erfolgen über die vconsole Debugging-Tool durchführen.


1. JS-Bibliothek einführen

 <script type=&#39;text/javascript&#39; src=&#39;//res.wx.qq.com/open/js/jweixin-1.0.0.js&#39;></script>

2. Konfigurationsinformationen in die Seite einfügen

wx.config({
    beta: true, // 开启内测接口调用,注入wx.invoke方法,非常重要!!必须有这个
    debug: true,//开启调试接口,alert运行结果
    appId: '',//必填,公众号的唯一标识,
    timestamp: '',//必填,生成签名的时间戳
    nonceStr: '',//必填,生成签名的随机串
    signature: '',//必填,签名
    jsApiList: []//要调用的js函数,必须把函数名字写入数组
});

Meine jsApiList hier ist

jsApiList: [
            'openWXDeviceLib',//初始化设备库(只支持蓝牙设备)
            'closeWXDeviceLib',//关闭设备库(只支持蓝牙设备)
            'getWXDeviceInfos',//获取设备信息(获取当前用户已绑定的蓝牙设备列表)
            'sendDataToWXDevice',//发送数据给设备
            'startScanWXDevice',//扫描设备(获取周围所有的设备列表,无论绑定还是未被绑定的设备都会扫描到)
            'stopScanWXDevice',//停止扫描设备
            'connectWXDevice',//连接设备
            'disconnectWXDevice',//断开设备连接
            'getWXDeviceTicket',//获取操作凭证
            'onWXDeviceBindStateChange',//微信客户端设备绑定状态被改变时触发此事件
            'onWXDeviceStateChange',//监听连接状态,可以监听连接中、连接上、连接断开
            'onReceiveDataFromWXDevice',//接收到来自设备的数据时触发
            'onScanWXDeviceResult',//扫描到某个设备时触发
            'onWXDeviceBluetoothStateChange',//手机蓝牙打开或关闭时触发
        ]

Wenn Sie testen möchten, ob die WeChat-Version diese APIs unterstützt, können Sie so schreiben:

 wx.checkJsApi({
    jsApiList: ['openWXDeviceLib', 'onScanWXDevicesResult', 'getWXDeviceInfos'], // 需要检测的JS接口列表,所有JS接口列表见附录2,
    success: function (res) {
        console.log(res);

    }
});

3. Initialisieren Sie die Gerätebibliotheksfunktion

Erfolgreiche Überprüfung über die fertige Schnittstelle durchführen

wx.ready(function () {          
    wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) {
        console.debug('openWXDeviceLib重新打开设备库==>');
        console.log(res);
    });
})

Falle: Scannen Sie das Gerät erneut und es kann nichts gefunden werden Auch das Aktualisieren der Seite funktioniert nicht

Lösung: Rufen Sie vor jedem Scan closeWXDeviceLib auf, um die Gerätebibliothek zu schließen, und rufen Sie dann openWXDeviceLib auf, um die Gerätebibliothek zu öffnen. Dies entspricht einer Neuinitialisierung der Gerätebibliothek. Wenn Sie jetzt erneut scannen, können Sie das Gerät scannen.

Code:

wx.invoke("stopScanWXDevice", {}, function (res) {
    console.debug('stopScanWXDevice');
    console.log(res);
 });
wx.invoke("closeWXDeviceLib", {}, function (res) {
    console.debug('closeWXDeviceLib关闭设备库==>');
    console.log(res);
});

wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) {
    console.debug('openWXDeviceLib重新打开设备库==>');
    console.log(res);
});

4. Achten Sie auf die vom Gerät zurückgegebenen Informationen

wx.on('onReceiveDataFromWXDevice', function (res) {
    console.warn('onReceiveDataFromWXDevice=>');
    console.log(JSON.stringify(res));
});

5 Eine Nachricht an das Gerät

muss vor dem Senden und Empfangen von Daten eine Base64-Kodierung und -Dekodierung durchführen.
Hier verwende ich eine Bibliothek:

    <script type=&#39;text/javascript&#39; src=&#39;base64.js&#39;></script>

Quelle:
http://www.php.cn/

var data={"deviceId":deviceId,"base64Data": Base64.encode('你要发送的数据')};
console.log(data);
wx.invoke('sendDataToWXDevice',data , function(res){
    //回调
    console.info('发消息到设备sendMsg');
    console.log(data);
    console.log(res);
    $('#dataFromDevice').append('发送消息的结果:'+JSON.stringify(res));
    alert('已发送 请查看控制板');
});

Beschreibung:

1. Sie benötigen die entsprechende Gerätenummer auf WeChat, um die entsprechende API nutzen zu können.

2. Die API muss normal unter dem durch die Gerätenummer festgelegten sicheren Domänennamen verwendet werden.

3 Alle console.log- und anderen Ausgaben an die Konsole in diesem Artikel erfolgen über die vconsole Debugging-Tool durchführen.

Weitere Artikel zum unvollständigen Leitfaden für die WeChat-Hardware-JS-API-Entwicklung finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:WeChat-Entwicklungs-LernrouteNächster Artikel:WeChat-Entwicklungs-Lernroute