1***@qq.com
1***@qq.com
  • 发布:2020-10-23 17:29
  • 更新:2020-10-23 17:29
  • 阅读:796

【报Bug】uniapp控制台报错Deferred long-running timer task(s)...;导致数据接收失败

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: windows10

HBuilderX类型: 正式

HBuilderX版本号: 2.9.3

手机系统: Android

手机系统版本号: Android 5.1

手机厂商: 优博讯pda手持终端

手机机型: i6200s

页面类型: vue

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<view class="content">  
            <view class="ulList">  
                <view class="listItem" v-for="(item, index) in deviceCode" :key="index">  
                    <text>{{ item }}</text>  
                    <icon type="clear" size="22" color="#ff7878" @tap="clearBtn(index)" />  
                </view>  
            </view>  
            <view class="centerSelect">  
                <button class="centerSelectBtn" type="default" size="mini" @tap="padScanCode()">  
                    <span style="font-weight: bold;margin: 0 3%;font-size: 1.1rem;">+</span>  
                    添加设备码  
                </button>  
            </view>  
</view>  
<script>  
var main, receiver, filter;  
var onReceiveFalg = true;  

import {  
  Devicelocation  
} from '@/api/api.js';  
export default {  
    data() {  
        return {  
            deviceCode:[],  
            falg: 0,  
            clearIndex: 0,  
            scanOKText: '扫描成功',  
            scanType: 'success',  
            dialogText:"请确认是否删除",  
        };  
    },  
    onLoad: function(option) {  
        console.log("onLoad")  
        let that=this;  
        that.permision.timerFalg("Devicelocation");  
        that.JsonCache = uni.getStorageSync('cache');  
        // #ifdef APP-PLUS  
        let webView = that.$mp.page.$getAppWebview();  
        // 修改buttons  
        // index: 按钮索引, style {WebviewTitleNViewButtonStyles }  
        webView.setTitleNViewButtonStyle(0, {  
            text: that.JsonCache.userInfo.UserName  
        });  
        // #endif  
    },  
    onShow: function() {  
        console.log("onShow")  
        // #ifdef APP-PLUS  
            this.initScan();  
        //#endif  
    },  
    onHide: function() {  
        console.log("onHide")  
        // #ifdef APP-PLUS  
            this.stopScan();  
        //#endif  
    },  
    onUnload: function() {  
        console.log("onUnload")  
        /*页面退出时一定要卸载监听,否则下次进来时会重复,造成扫一次出2个以上的结果*/  
        // #ifdef APP-PLUS  
            this.stopScan();  
        //#endif  
    },  
methods: {  
     initScan() {  
            let that = this;  
            main = plus.android.runtimeMainActivity(); //获取activity  
            var IntentFilter = plus.android.importClass('android.content.IntentFilter');//引入过滤器    
            filter = new IntentFilter();  
            filter.addAction('android.intent.ACTION_DECODE_DATA'); // 换你的广播动作  
            console.log("initScan开始执行")  
            receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {  
                onReceive: function(context, intent) {  
                    console.log("context",context)  
                    console.log("intent",intent)  
                    console.log('进入onReceive监听',onReceiveFalg);  
                        console.log("that.deviceCode",that.deviceCode)  
                    if(onReceiveFalg==true){  
                        onReceiveFalg=false;  
                        console.log('判断onReceiveFalg=true');  
                        plus.android.importClass(intent);  
                        let code = intent.getStringExtra('barcode_string'); // 换你的广播标签  
                        console.log('code', code);  
                        console.log("initScan saomaFalg",saomaFalg)  
                        that.queryCode(code);  
                    }else{  
                        that.stopScan();  
                    }  
                }  
            });  
        },  
        padScanCode() {   
            console.log("点击事件调用")  
            let that=this;  
            // #ifdef APP-PLUS  
            console.log('plus.os.name', plus.os.name);  
            if (plus.os.name == 'Android') {  
                var Context = plus.android.importClass('android.device.ScanManager');  
                // var PropertyID = plus.android.importClass('android.device.scanner.configuration.PropertyID');  
                // var Triggering = plus.android.importClass('android.device.scanner.configuration.Triggering');  
                console.log('Context', Context);  
                let ContextObject = new Context();  
                let ret = ContextObject.openScanner();  
                console.log('ret', ret);  
                if (ret) {  
                    //open successful  
                    // let OutputMode = ContextObject.getOutputMode(); //获取输出模式  
                    // console.log('OutputMode', OutputMode);  
                    // OutputMode = 1;  
                    // let switchOutputMode = ContextObject.switchOutputMode(OutputMode); //设置输出模式  
                    // console.log('switchOutputMode', switchOutputMode);  
                    // let TriggeringMode = Triggering.PULSE;  
                    // ContextObject.setTriggerMode(TriggeringMode)  
                    // let riggerMode = ContextObject.getTriggerMode();  
                    // console.log('riggerMode', riggerMode);;  

                    // let PropertyIDNum = ContextObject.getParameterInts([PropertyID.WEDGE_KEYBOARD_ENABLE]);  
                    // console.log('PropertyIDNum', PropertyIDNum);  
                    // let setParameter = ContextObject.setParameterInts([PropertyID.WEDGE_KEYBOARD_ENABLE, PropertyID.GOOD_READ_BEEP_ENABLE], [0, 1]);  

                    // console.log('setParameter', setParameter);  

                    let startDecodeText = ContextObject.startDecode();  
                    if (startDecodeText) {  
                        console.log('startDecodeText', startDecodeText);  
                        console.log('receiver', receiver);  
                        console.log('filter', filter);  
                        onReceiveFalg=true;  
                        main.registerReceiver(receiver, filter);  
                    }  
                }  
            }  
            //#endif  
        },  
        queryCode: function(code) {  
            let that=this;  
            let status='success';  
            let staText=null;  
            let falgData=false;  
            console.log("code",code)  
            //点击储位码按钮  
            that.stopScan();  
            falgData = that.deviceCode.some(function(x) {  
                        console.log("调试之前",x)  
                        return x == code;  
                    });  
                        console.log("falgData",falgData)  
                    if (falgData==false) {  
                        console.log(3)  
                        that.deviceCode.unshift(code);  
                        console.log(that.deviceCode,that.deviceCode.toString())  
                        staText = '扫描成功:' + code;  
                    } else {  
            console.log(4)  
                        status = 'error';  
                        staText = '设备码扫描重复:' + code;  
                    }  
                },  
        // 终止扫码  
        stopScan() {  
            // #ifdef APP-PLUS  
            main.unregisterReceiver(receiver);  
            //#endif  
        }  
        }  
};  
</script>  
<style scoped lang="less">  
    .content {  
        width:750rpx;  
        height: 100vh;  
        position: relative;  
        background-image: linear-gradient(#3a66a3, rgb(241, 248, 255));  
        .ulList {  
            width: 650rpx;  
            height: 68vh;  
            overflow: auto;  
            margin: 0 30rpx;  
            padding: 0 20rpx;  
        background-color: #efefef;  
            .listItem {  
                background-color: #fff;  
                padding: 2% 2%;  
                margin-bottom: 1vh;  
                display: flex;  
                flex-flow: row wrap;  
                justify-content: space-around;  
                align-items: center;  
                align-content: center;  
                text {  
                    width: 88%;  
                    font-size: 1.4rem;  
                    line-height: 1;  
                    word-wrap: break-word;  
                    word-break: break-all;  
                    overflow: hidden;  
                }  
            }  
        }  
        .centerSelect{  
            width: 750rpx;  
            height: 11vh;  
            display: flex;  
            flex-flow: row wrap;  
            justify-content: center;  
            align-items: center;  
            align-content: center;  
            // border-bottom: 1px solid #847d74;  
            .centerSelectBtn {  
                width: 690rpx;  
                font-size: 1rem;  
            }  
        }  
        .centerText{  
            font-size: 1rem;  
                    border-radius: 5px;  
                    width: 650rpx;  
                    height: 8vh;  
                    margin: 0 30rpx;  
                    padding: 0 20rpx;  
                    line-height: 8vh;  
                    background-color: #fff;  
        }  
        .bottom {  
            width: 750rpx;  
            height: 13vh;  
            display: flex;  
            flex-flow: row wrap;  
            justify-content: space-around;  
            align-items: center;  
            align-content: center;  
            .codeBtn1 {  
                width: 40%;  
                font-size: 1rem;  
            }  
            .codeBtn2 {  
                width: 45%;  
                font-size: 1rem;  
                color: #fff;  
                background-color: #3a66a3;  
            }  
        }  
    }  
    .tishi {  
        text-align: center;  
        padding-top: 25vh;  
        font-size: 1.3rem;  
    }  

// .content {  
//  width: 750rpx;  
//  height: 100vh;  
//  position: relative;  
//  .ulList {  
//      width: 96%;  
//      height: 62vh;  
//      background-color: #efefef;  
//      overflow: auto;  
//      padding: 1vh 2%;  
//      .listItem {  
//          background-color: #fff;  
//          padding: 2% 2%;  
//          margin-bottom: 1vh;  
//          display: flex;  
//          flex-flow: row wrap;  
//          justify-content: space-around;  
//          align-items: center;  
//          align-content: center;  
//          text {  
//              width: 88%;  
//              font-size: 1.4rem;  
//              line-height: 1;  
//              word-wrap: break-word;  
//              word-break: break-all;  
//              overflow: hidden;  
//          }  
//      }  
//  }  

//  // .ulList {  
//  //  width: 710rpx;  
//  //      height: 70vh;  
//  //      overflow: auto;  
//  //      padding: 15vh 10px;  

//  //  .listItemBtn {  
//  //      width: 710rpx;  
//  //      height: 13vh;  
//  //      margin-top: 8vh;  
//  //      border-radius: 5px;  
//  //      background-color: #fff;  
//  //      display: flex;  
//  //      flex-flow: row wrap;  
//  //      justify-content: space-around;  
//  //      align-items: center;  
//  //      align-content: center;  
//  //      .codeBtn1 {  
//  //          width: 40%;  
//  //          font-size: 1rem;  
//  //      }  
//  //      .codeBtn2 {  
//  //          width: 45%;  
//  //          font-size: 1rem;  
//  //          color: #fff;  
//  //          background-color: #3a66a3;  
//  //      }  
//  //  }  
//  //  .reqestHtml{  
//  //      font-size: 1rem;  
//  //      margin-top: 5vh;  
//  //      border-radius: 5px;  
//  //      width: 670rpx;  
//  //      height: 40vh;  
//  //      padding:20rpx;  
//  //      background-color: #fff;  
//  //      p{  
//  //              padding: 2vh;  
//  //              margin-top: 2vh;  
//  //              height: 28vh;  
//  //              /* border: 1px solid #bbbbbb; */  
//  //              overflow: auto;  
//  //              font-weight: bold;  
//  //              margin-top: 2vh;  
//  //              background: #e6e4e4;  
//  //              border-radius: 5px;  
//  //      }  
//  //  }  
//  // }  
//  .centerText{  
//      font-size: 1rem;  
//      margin-top: 7vh;  
//      border-radius: 5px;  
//      width: 670rpx;  
//      height: 10vh;  
//      padding: 0 20rpx;  
//      line-height: 10vh;  
//      background-color: #fff;  
//  }  
//  .centerSelect{  
//      width: 750rpx;  
//      height: 11vh;  
//      background-color: #d6d6d6;  
//      display: flex;  
//      flex-flow: row wrap;  
//      justify-content: space-around;  
//      align-items: center;  
//      align-content: center;  
//      // border-bottom: 1px solid #847d74;  
//      .centerSelectBtn {  
//          width: 98%;  
//          font-size: 1rem;  
//      }  
//  }  
// }  
// .tishi {  
//  text-align: center;  
//  padding-top: 25vh;  
//  font-size: 1.3rem;  
// }  
</style>  

操作步骤:

1、先自定义按钮扫描,第一次是正确的;
2、点击物理返回键返回主页面,再次点击进来;
3、扫描时控制台报错:
Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343. at __uniappview.html:0;

4、导致扫描数据接收失败

预期结果:

扫描数据可以正常接收显示

实际结果:

queryCode()方法中可以打印扫描数据,但是that.deviceCode.unshift(code);运行失败;数据无法显示

bug描述:

问题:pda手持终端扫描控制台会报错: Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343. at __uniappview.html:0,导致扫描数据接收失败

2020-10-23 17:29 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复