<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***@qq.com](https://img-cdn-tc.dcloud.net.cn/account/identicon/9fe985fcc20ba0ab67b13e68f0031d0b.png)
- 发布:2020-10-23 17:29
- 更新:2020-10-23 17:29
- 阅读:796
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows10
HBuilderX类型: 正式
HBuilderX版本号: 2.9.3
手机系统: Android
手机系统版本号: Android 5.1
手机厂商: 优博讯pda手持终端
手机机型: i6200s
页面类型: vue
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
1、先自定义按钮扫描,第一次是正确的;
2、点击物理返回键返回主页面,再次点击进来;
3、扫描时控制台报错:
Deferred long-running timer task(s) to improve scrolling smoothness. See crbug.com/574343. at __uniappview.html:0;
4、导致扫描数据接收失败
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);运行失败;数据无法显示
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,导致扫描数据接收失败
0 个回复