- iOS13怎么区分蓝牙的不同状态,是系统蓝牙未打开或者未授权微信蓝牙权限?
在iOS13中,蓝牙变成了和位置,通知服务等同样的可以针对单个app授权的服务。用户可以在设置中关闭微信的Bluetooth Sharing,这样即使系统蓝牙打开了,小程序仍然无法使用BLE服务。 三种情况: a.手机蓝牙未打开 b.手机蓝牙已打开,微信的蓝牙服务关闭 c.两者均打开 在目前的小程序API中,我们可以通过获取system Info来查看蓝牙是否打开(bluetoothEnabled).然而在情况a和b中,该参数均为false。这样我们无法准确提示用户去打开系统蓝牙或者打开微信的蓝牙授权了。 另一种方式是在wx.openBluetoothAdapter(Object object) 这个接口中,情况a返回的error为: {"state": 4,"errCode":10001,"errMsg":"openBluetoothAdapter:fail open fail"} 情况b返回的error为: {"state": 3,"errCode":10001,"errMsg":"openBluetoothAdapter:fail open fail"} 开发者或许可以通过这个state来区分这两种情况,但是在官方文档中并未给出state的具体定义。 我相信在iOS13中,小程序API会有所更新。希望能够补充这种state的定义,同时给出更多蓝牙的选项。 下面是iOS中关于state的定义,我猜测微信直接引用这部分定义: typedef NS_ENUM(NSInteger, CBCentralManagerState) { CBCentralManagerStateUnknown = CBManagerStateUnknown, CBCentralManagerStateResetting = CBManagerStateResetting, CBCentralManagerStateUnsupported = CBManagerStateUnsupported, CBCentralManagerStateUnauthorized = CBManagerStateUnauthorized, CBCentralManagerStatePoweredOff = CBManagerStatePoweredOff, CBCentralManagerStatePoweredOn = CBManagerStatePoweredOn, } NS_DEPRECATED(10_7, 10_13, 5_0, 10_0, "Use CBManagerState instead"); 这个问题已经有用户遇到,应该是购买的iOS13的新手机,希望能够尽早处理。
2019-11-08 - 新版数据库自定义权限设置创建者可读写问题
[图片][图片]
2019-12-25 - 锁屏后BackgroundAudioManager无法自动播放
- 需求的场景描述(希望解决的问题) 现在需要做一个实时语音播报功能,小程序和服务端通过websocke建立tcp连接,当收到服务端消息时(此消息实为mp3音频地址),小程序通过接受到的mp3文件地址,通过backgroundAudioManager.src="接受到的音频地址",进行语音播报,当锁屏后出现setBackgroundAudioState:fail: jsapi has no permission, - 希望提供的能力 希望锁屏后能直接通过websocket接受到新的音频地址后,设置backgroundAudioManager.src新的音频地址在锁屏后继续播报。
2019-04-16 - 关于最新推出的“实时数据推送”的几点建议。为什么“实时数据推送”还有局限性?
首先必须赞一个,实时数据推送解决了很多问题,实现的效果非常棒!给小程序工程师加鸡腿🍗!! 我在使用过程中也遇到了一定的麻烦,我觉得在api层面如果能提供更多支持,那这个功能会更棒! 希望能够控制init获取记录的数量。在对话列表的场景中,无限制的数据获取意味着吞吐量的可怕增长。对于实际体验来说,数据量一旦达到一定规模,网络、渲染都必定会出现一定问题。权宜之计是设置数据查询时的时间范围,但这无法灵活地解决矛盾。不过当然,控制数量也意味着先实现排序,工作量的确不小。 希望提供watcher的暂停、恢复功能。在多个不同的watcher间切换,为了减轻网络负担,常常会先关闭一个watcher,再打开下一个。但watcher重启后,要么会将本来已有的数据重新获取一次,浪费网络与配额、要么对已经获取到的数据失去监听权限(设置条件,排除已经获取到的数据),用户体验不太好。 watcher对于date的处理,是否支持“现在”?比如数据库中有个含有未来某个时间点的记录,我希望watcher能够到达那个时间再触发,能否实现?根据目前的where的文档,貌似是不可以的。
2019-09-02 - node.js开发环境的SDK没更新吗?
一直用的腾讯的node.js开发环境. getsUserInfo更新以后,wx:login的使用也有变化吧. 之前wx:login后用来和开发者服务器如下: var code = wxLoginResult.code; var encryptedData = wxLoginResult.encryptedData; var iv = wxLoginResult.iv; var header = {}; header[constants.WX_HEADER_CODE] = code; header[constants.WX_HEADER_ENCRYPTED_DATA] = encryptedData; header[constants.WX_HEADER_IV] = iv; // 请求服务器登录地址,获得会话信息 wx.request({ url: options.loginUrl, header: header, method: options.method, data: options.data, data:{code:code}, success: function (result) { 现在wx:login返回的只有code...SDK中的效验通不过啊, SDK中header效验如下 function authorization (req) { const { 'x-wx-code': code, 'x-wx-encrypted-data': encryptedData, 'x-wx-iv': iv } = req.headers // 检查 headers if ([code, encryptedData, iv].some(v => !v)) { debug(ERRORS.ERR_HEADER_MISSED) throw new Error(ERRORS.ERR_HEADER_MISSED) } 你们是不是应该要把SDK也更新一下啊.这开发环境没发用了啊.或者给个自己修改SDK的方案啊
2018-05-13