1. JS 라이브러리 소개
<script type='text/javascript' src='//res.wx.qq.com/open/js/jweixin-1.0.0.js'></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='text/javascript' src='base64.js'></script>
출처:
//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('已发送 请查看控制板'); });
설명:
1. 해당 API를 사용하려면 위챗의 해당 기기 번호에 있어야 합니다.
2. API는 기기번호로 설정된 보안 도메인 이름으로 정상적으로 사용되어야 합니다
3. 이 글의 모든 console.log 및 기타 콘솔 출력은 vconsole을 사용하여 이루어집니다. 디버깅 도구가 수행됩니다.
1. JS 라이브러리 도입
rree2.
<script type='text/javascript' src='//res.wx.qq.com/open/js/jweixin-1.0.0.js'></script>
wx.config({ beta: true, // 开启内测接口调用,注入wx.invoke方法,非常重要!!必须有这个 debug: true,//开启调试接口,alert运行结果 appId: '',//必填,公众号的唯一标识, timestamp: '',//必填,生成签名的时间戳 nonceStr: '',//必填,生成签名的随机串 signature: '',//必填,签名 jsApiList: []//要调用的js函数,必须把函数名字写入数组 });
jsApiList: [ 'openWXDeviceLib',//初始化设备库(只支持蓝牙设备) 'closeWXDeviceLib',//关闭设备库(只支持蓝牙设备) 'getWXDeviceInfos',//获取设备信息(获取当前用户已绑定的蓝牙设备列表) 'sendDataToWXDevice',//发送数据给设备 'startScanWXDevice',//扫描设备(获取周围所有的设备列表,无论绑定还是未被绑定的设备都会扫描到) 'stopScanWXDevice',//停止扫描设备 'connectWXDevice',//连接设备 'disconnectWXDevice',//断开设备连接 'getWXDeviceTicket',//获取操作凭证 'onWXDeviceBindStateChange',//微信客户端设备绑定状态被改变时触发此事件 'onWXDeviceStateChange',//监听连接状态,可以监听连接中、连接上、连接断开 'onReceiveDataFromWXDevice',//接收到来自设备的数据时触发 'onScanWXDeviceResult',//扫描到某个设备时触发 'onWXDeviceBluetoothStateChange',//手机蓝牙打开或关闭时触发 ]
3. 초기화 장치 라이브러리 기능
은 준비된 인터페이스를 통해 성공적인 확인을 처리합니다wx.checkJsApi({ jsApiList: ['openWXDeviceLib', 'onScanWXDevicesResult', 'getWXDeviceInfos'], // 需要检测的JS接口列表,所有JS接口列表见附录2, success: function (res) { console.log(res); } });
함정: 장치를 다시 검색해도 아무것도 찾을 수 없으며 페이지를 새로 고쳐도 쓸모가 없습니다해결 방법: 각 스캔 전에 closeWXDeviceLib를 호출하여 장치 라이브러리를 닫은 다음 openWXDeviceLib를 호출하여 장치 라이브러리를 엽니다. 이는 장치 라이브러리를 다시 초기화하는 것과 같습니다. 지금 다시 스캔하면 장치를 스캔할 수 있습니다.코드:
wx.ready(function () { wx.invoke('openWXDeviceLib', {connType: 'blue'}, function (res) { console.debug('openWXDeviceLib重新打开设备库==>'); console.log(res); }); })
4. 기기에서 반환된 정보 듣기
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); });
5. 기기
데이터를 보내고 받기 전에 Base64 인코딩 및 디코딩이 필요합니다.여기서는 라이브러리를 사용합니다:
wx.on('onReceiveDataFromWXDevice', function (res) { console.warn('onReceiveDataFromWXDevice=>'); console.log(JSON.stringify(res)); });
//m.sbmmt.com/
<script type='text/javascript' src='base64.js'></script>
1. 해당 API를 사용하려면 위챗의 해당 기기 번호에 있어야 합니다. 2. API는 기기번호로 설정된 보안 도메인 이름으로 정상적으로 사용되어야 합니다3. 이 글의 모든 console.log 및 기타 콘솔 출력은 vconsole을 사용하여 이루어집니다. 디버깅 도구가 수행됩니다.WeChat 하드웨어 JS-Api 개발에 대한 불완전한 가이드와 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!