一个控制蓝牙小灯的程序,在ios上和开发者工具里面都能正常的延时,但是就是安卓手机不可以。这是什么情况。


出问题的地方就是那个timer函数,安卓手机并没有执行延时而是直接跳过去了,进行下一步的指令了。


var app = getApp();

var display = new Array();

var inst = new Array();

var value = new Array();

var index = 0;

var inputValue = '';

var inputInst = '';


var current = 0;

var x = 0;


let buffer = new ArrayBuffer(20)

let dataView = new DataView(buffer)

dataView.setUint8(0, 0)

dataView.setUint8(1, 0)

dataView.setUint8(2, 0)

dataView.setUint8(3, 0)

dataView.setUint8(4, 0)

dataView.setUint8(5, 0)

dataView.setUint8(6, 0)

dataView.setUint8(7, 0)

dataView.setUint8(8, 0)

dataView.setUint8(9, 0)

dataView.setUint8(10, 0)

dataView.setUint8(11, 0)

dataView.setUint8(12, 0)

dataView.setUint8(13, 0)

dataView.setUint8(14, 0)

dataView.setUint8(15, 0)

dataView.setUint8(16, 0)

dataView.setUint8(17, 0)

dataView.setUint8(18, 0)

dataView.setUint8(19, 0)


Page({

data: {

instructions: ['关闭', '开启', '延时'],

},



onUnload: function () {

wx.closeBLEConnection({

deviceId: app.globalData.targetAdd,

success: function (res) {

app.globalData.connectFlag = false,

app.globalData.searchFlag = false,

app.globalData.targetAdd = 'NoAdd',

console.log(res)

console.log('app.globalData.connectFlag', app.globalData.connectFlag)

console.log('app.globalData.searchFlag', app.globalData.searchFlag)

console.log('app.globalData.targetAdd', app.globalData.targetAdd)


}

})

},



bindPickerChange: function (e) {

console.log('picker发送选择改变,携带值为', e.detail.value)

if (e.detail.value == 0) {

inputInst = '关闭';

}

if (e.detail.value == 1) {

inputInst = '开启';

}

if (e.detail.value == 2) {

inputInst = '延时';

}


this.setData({

index: e.detail.value

})

console.log('指令值: ', inputInst)

},


inputDone: function (e) {

inputValue = e.detail.value

},


inputInstructions: function () {

inst.push(inputInst)

console.log('指令数组', inst)


value.push(inputValue)

console.log('值数组', value)


display.push(inputInst + ": " + inputValue)

cons

展开全部
收起
1回答
提交回答
  • 至过去的我

    2044人对此回答表示赞同

    我是未来的你,你现在是不是在年找寻小程序答案。你不要感觉诧异,给你来信原因,就是让你不在后悔。今天去学习如何推广小程序,相信......点击查看更多>
    发布于
  • Bellrrrrr

    20人对此回答表示赞同

    苹果是5s

    展开
    20
    12回复
    发布于 6年前

    评论(12)

    收起评论

    • Thomas 2019-02-11 15:05

      嗯,解决了就好

      回复
    • Janaya 2019-02-13 10:07

      多谢大神,问题解决了,定义了个函数,强行将value【current】的值转成数值就可以正常延时了:

      回复
    • 泯灭人性 2019-02-15 14:59

      为什么会拿不到value[current]的值啊?

      回复
    • 夹生饭 2019-02-17 17:04

      这个逻辑都这么清楚了怎么检查啊。。。要不你跟说就是系统问题得了我也好交代。。。

      回复
    • 空空如也 2019-02-19 08:13

      不是喔,建议检查代码

      回复
    • Nevaeh 2019-02-21 09:56

      啊,太好了!那怎么解决啊?你们是不是也是只有安卓的不行呢?

      回复
    • 千杯风月醉 2019-02-23 22:20

      这边测试有时候会发现拿不到value[current]的值,所以setTimeOut没有延迟相应时间,能拿到value[current]的值会正常执行的

      回复
    • Sarah 2019-02-25 16:38

      wechatide://minicode/TrjOGjmo7QGR

      回复
    • John 2019-02-27 16:38

      要不你再提供一个简洁一点的,并且能复现问题的代码片段?

      回复
    • 林小姐也是lyn 2019-03-01 21:55

      对了,为了便于你测试方便你可以把index页面里面的programMode函数里面的都注释掉,再把那个页面跳转的注释出来这样不需要连接蓝牙设备了。

      回复
    • Ridley Chan 2019-03-03 16:42

      通过扫码,搜索,进入编程模式之后,用户会输入指令(关闭,开启,延时)以及指令的值(开启关闭的MOS管的编号,延时的毫秒值)。在指令输入完后用户点击执行按钮会根据输入的指令顺序开始自动给连接的蓝牙模块发送指令。

      回复
    • Daniel 2019-03-05 09:12

      代码片段没有明确复现问题的具体操作,请详细描述

      回复
    加载更多
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
咨询热线

13312967497

扫码添加业务即可随时咨询 还可领取小程序推广攻略

业务咨询: 13312967497
扫码咨询

扫码咨询套餐

回到顶部