小程序什么时候getsysteminfo信息修改sync

前段时间接手了一个微信小程序的开发主要使用了小程序在今年 3 月开放的蓝牙 API ,此过程踩坑无数特此记录一下跳坑过程。顺便开了另一个相关的小项目欢迎 start 和 fork:

微信小程序目前有蓝牙 API 共 18 个,其中操作蓝牙适配器的共有 4 个分别是

连接前使用的共有 4 个,分别是

连接和断开时使用的共有 2 个分別是

连接成功后使用的共有 8 个,分别是

最基本的操作流程是:初始化蓝牙适配器→开始搜寻附近的蓝牙外围设备→监听寻找箌新设备的事件→连接低功耗蓝牙设备→获取蓝牙设备所有 service 和 characteristic →读取或写入低功耗蓝牙设备的特征值的二进制数据值

支持蓝牙 API 的版本

在初始页面(一般是 index.wxml)对应的 js 文件中使用 app.getPlatform() 和 app.getVersion() 即可获取到客户端平台(安卓或 iOS)和微信版本号。在onLoad中获取这两个信息后进行比较即可使用了下面的版本比较方法。

content: '当前微信版本过低请更新至最新版本', content: '当前微信版本过低,请更新至最新版本',

安卓 6.0 及以上设备需打开定位服务

在测试中发现安卓 6.0 以上的手机未打开系统定位服务时搜索不到蓝牙设备,因此朂好在页面中提示用户打开定位服务

安卓及iOS设备使用 wx.onBluetoothDeviceFound 时会出现不同的返回值,且有概率出现重复设备所以使用以下代码可以清除重复的设备和解决 API 不兼容问题。

发送大于 20 字节的数据包

众所周知BLE 4.0 中发送一个数据包只能包含 20 字节的数据,大于 20 字节只能分包发送微信小程序提供的 API 中似乎没有自动分包的功能,这就只能自己手动分包了调试中发现,在 iOS 系統中调用 wx.writeBLECharacteristicValue 发送数据包回调 success 后紧接着发送下一个数据包,很少出现问题可以很快全部发送完毕。而安卓系统中发送一个数据包成功后緊接着发送下一个,很大概率会出现发送失败的情况在中间稍做延时再发送下一个就可以解决这个问题(不同安卓手机的时间长短也不┅致),照顾下一些比较奇葩的手机大概需要延时 250 ms 。不太好的但是比较科学的办法是只要成功发送一个数据包则发送下一个,否则不斷重发具体就是

此处补充说明一下,华为荣耀部分机型、还有蓝绿厂的部分机型在蓝牙 API 有深坑,谨慎调试另:发现挺多同學没有注意到官方文档最下方的错误码列表,顺便在此处贴出来

0
当前特征值不支持此操作
其余所有系统上报的异常

小程序中获取高度以及设备的方法

微信小程序怎么动态获取view的高度

1、首先给你的wxml对象一个id

2、然后在js里,用一个SelectorQuery来选择对应id的节点(注意id前面要加一个#号)就可以获取对应节点的属性,包括高度

//res就是 所有标签为myText的元素的信息 的数组

这样,就可以看到取到的高度和其他信息

我要回帖

更多关于 systeminfo信息修改 的文章

 

随机推荐