WeChat ハードウェア JS-Api 開発に関する不完全なガイド

高洛峰
リリース: 2017-02-09 09:28:52
オリジナル
1906 人が閲覧しました

1.JSライブラリを導入します

 <script type=&#39;text/javascript&#39; src=&#39;//res.wx.qq.com/open/js/jweixin-1.0.0.js&#39;></script>
ログイン後にコピー
ログイン後にコピー

2.ページに構成情報を挿入します

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

ここで私のjsApiListは

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

WeChatのバージョンがこれらのAPIをサポートしているかどうかをテストしたい場合は、次のように書くことができます:

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

    }
});
ログイン後にコピー
ログイン後にコピー

3. デバイスライブラリ関数を初期化します

準備が整ったインターフェイスを通じて成功した検証を処理します

wx.ready(function () {          
    wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) {
        console.debug('openWXDeviceLib重新打开设备库==>');
        console.log(res);
    });
})
ログイン後にコピー
ログイン後にコピー

落とし穴: デバイスを再スキャンしても何も見つかりません。ページを更新しても無駄です

解決策: 毎回スキャンする前に、まず closeWXDeviceLib を呼び出してデバイス ライブラリを閉じ、次に openWXDeviceLib を呼び出してデバイス ライブラリを開きます。これは、デバイス ライブラリを再初期化することに相当します。ここで再度スキャンすると、デバイスをスキャンできます。

コード:

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. デバイスから返された情報をリッスンします

wx.on('onReceiveDataFromWXDevice', function (res) {
    console.warn('onReceiveDataFromWXDevice=>');
    console.log(JSON.stringify(res));
});
ログイン後にコピー
ログイン後にコピー

5. デバイスにメッセージを送信します

データを送受信する前に、Base64 のエンコードとデコードが必要です。
ここでは、ライブラリを使用します:

    <script type=&#39;text/javascript&#39; src=&#39;base64.js&#39;></script>
ログイン後にコピー
ログイン後にコピー

出典:
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('已发送 请查看控制板');
});
ログイン後にコピー
ログイン後にコピー

手順:

1. 対応する API を使用するには、対応する WeChat デバイス アカウントにいる必要があります。

2. API は通常、デバイス番号で設定された安全なドメイン名で使用する必要があります

3. この記事の console.log およびその他のコンソールへの出力は、vconsole デバッグ ツールを使用して実装されています。


1.JSライブラリを導入します

 <script type=&#39;text/javascript&#39; src=&#39;//res.wx.qq.com/open/js/jweixin-1.0.0.js&#39;></script>
ログイン後にコピー
ログイン後にコピー

2.ページに構成情報を挿入します

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

ここで私のjsApiListは

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

WeChatのバージョンがこれらのAPIをサポートしているかどうかをテストしたい場合は、次のように記述できます:

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

    }
});
ログイン後にコピー
ログイン後にコピー

3. デバイスライブラリ関数を初期化します

準備ができたインターフェイスを通じて成功した検証を処理します

wx.ready(function () {          
    wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) {
        console.debug('openWXDeviceLib重新打开设备库==>');
        console.log(res);
    });
})
ログイン後にコピー
ログイン後にコピー

落とし穴: デバイスを再スキャンしても何も見つからず、ページを更新しても無駄です

解決策: 各スキャンの前に、closeWXDeviceLib を呼び出してデバイス ライブラリを閉じてから、openWXDeviceLib を呼び出してデバイス ライブラリを開きます。これは、デバイス ライブラリを再初期化することに相当します。ここで再度スキャンすると、デバイスをスキャンできます。

コード:

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. デバイスから返された情報をリッスンします

wx.on('onReceiveDataFromWXDevice', function (res) {
    console.warn('onReceiveDataFromWXDevice=>');
    console.log(JSON.stringify(res));
});
ログイン後にコピー
ログイン後にコピー

5. デバイスにメッセージを送信します

データを送受信する前に、Base64 のエンコードとデコードが必要です。
ここでは、ライブラリを使用します:

    <script type=&#39;text/javascript&#39; src=&#39;base64.js&#39;></script>
ログイン後にコピー
ログイン後にコピー

出典:
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('已发送 请查看控制板');
});
ログイン後にコピー
ログイン後にコピー

手順:

1. 対応する API を使用するには、対応する WeChat デバイス アカウントにいる必要があります。

2. API は通常、デバイス番号で設定された安全なドメイン名で使用する必要があります

3. この記事の console.log およびその他のコンソールへの出力は、vconsole デバッグ ツールを使用して実装されています。

WeChat ハードウェア JS-Api 開発不完全ガイドに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート