Maison > Applet WeChat > Développement WeChat > le corps du texte

Guide incomplet du développement JS-Api du matériel WeChat

高洛峰
Libérer: 2017-02-09 09:28:52
original
1856 Les gens l'ont consulté

1. Présentez la bibliothèque JS

 <script type=&#39;text/javascript&#39; src=&#39;//res.wx.qq.com/open/js/jweixin-1.0.0.js&#39;></script>
Copier après la connexion
Copier après la connexion

2. Injectez les informations de configuration dans la page

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

Voici ma jsApiList.

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

Si vous souhaitez tester si la version WeChat prend en charge ces API, vous pouvez écrire comme ceci :

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

    }
});
Copier après la connexion
Copier après la connexion

3. Initialiser la fonction de bibliothèque de l'appareil

Traitement réussi de la vérification via l'interface prête

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

Piège : rien ne peut être trouvé du tout en analysant à nouveau l'appareil, même l'actualisation de la page ne le résout pas

Méthode : avant chaque analyse, appelez d'abord closeWXDeviceLib pour fermer la bibliothèque de périphériques, puis appelez openWXDeviceLib pour ouvrir la bibliothèque de périphériques. Cela équivaut à réinitialiser la bibliothèque de périphériques. Si vous effectuez une nouvelle analyse maintenant, vous pouvez analyser le périphérique.

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);
});
Copier après la connexion
Copier après la connexion

4. Écoutez les informations renvoyées par l'appareil

wx.on('onReceiveDataFromWXDevice', function (res) {
    console.warn('onReceiveDataFromWXDevice=>');
    console.log(JSON.stringify(res));
});
Copier après la connexion
Copier après la connexion

5. un message adressé à l'appareil

doit effectuer un encodage et un décodage en base64 avant d'envoyer et de recevoir des données.
Ici, j'utilise une bibliothèque :

    <script type=&#39;text/javascript&#39; src=&#39;base64.js&#39;></script>
Copier après la connexion
Copier après la connexion

Source :
//m.sbmmt.com/

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('已发送 请查看控制板');
});
Copier après la connexion
Copier après la connexion

Description :

1. Vous devez disposer du numéro d'appareil correspondant sur WeChat pour utiliser l'API correspondante.

2. L'API doit être utilisée normalement sous le nom de domaine sécurisé défini par le numéro de périphérique

3. Tous les fichiers console.log et autres sorties vers la console dans cet article sont effectués à l'aide de la vconsole. outil de débogage accompli.


1. Introduire la bibliothèque JS

 <script type=&#39;text/javascript&#39; src=&#39;//res.wx.qq.com/open/js/jweixin-1.0.0.js&#39;></script>
Copier après la connexion
Copier après la connexion

2. 🎜 >

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

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

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

    }
});
Copier après la connexion
Copier après la connexion

3. Initialisez la fonction de bibliothèque de l'appareil

Procédez une vérification réussie via l'interface prête

wx.ready(function () {          
    wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) {
        console.debug('openWXDeviceLib重新打开设备库==>');
        console.log(res);
    });
})
Copier après la connexion
Copier après la connexion
Piège : analysez à nouveau l'appareil et rien ne peut être trouvé Même l'actualisation de la page ne fonctionne pas

Solution : avant chaque analyse, appelez closeWXDeviceLib pour fermer la bibliothèque de périphériques, puis appelez openWXDeviceLib pour ouvrir la bibliothèque de périphériques. Cela équivaut à réinitialiser la bibliothèque de périphériques. Si vous effectuez une nouvelle analyse maintenant, vous pouvez analyser le périphérique.

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);
});
Copier après la connexion
Copier après la connexion

4. Écoutez les informations renvoyées par l'appareil

wx.on('onReceiveDataFromWXDevice', function (res) {
    console.warn('onReceiveDataFromWXDevice=>');
    console.log(JSON.stringify(res));
});
Copier après la connexion
Copier après la connexion

5. un message adressé à l'appareil

doit effectuer un encodage et un décodage en base64 avant d'envoyer et de recevoir des données.

Ici, j'utilise une bibliothèque :

    <script type=&#39;text/javascript&#39; src=&#39;base64.js&#39;></script>
Copier après la connexion
Copier après la connexion
Source :

//m.sbmmt.com/

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('已发送 请查看控制板');
});
Copier après la connexion
Copier après la connexion
Description :

1. Vous devez disposer du numéro d'appareil correspondant sur WeChat pour utiliser l'API correspondante.

2. L'API doit être utilisée normalement sous le nom de domaine sécurisé défini par le numéro de périphérique

3. Tous les fichiers console.log et autres sorties vers la console dans cet article sont effectués à l'aide de la vconsole. outil de débogage accompli.

Pour plus d'articles liés au guide incomplet pour le développement JS-Api du matériel WeChat, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!