| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | <template>	<view class="content"></view></template><script>var main, receiver;var shakeIsShow = false;export default {	name:'monitorScanCode',	data() {		return {		};	},	created(option) {		this.monitorScan();	},	// 组件销毁	destroyed(){		this.cancelScan();	},	methods: {		// 广播监听绑定		monitorScan() {			// PDA扫描必须设置广播模式			main = plus.android.runtimeMainActivity(); //获取activity			let IntentFilter = plus.android.importClass('android.content.IntentFilter');			let filter = new IntentFilter();			filter.addAction('android.intent.ACTION_DECODE_DATA'); //广播动作						let that = this;			let context = plus.android.importClass('android.content.Context');			let Intent = plus.android.importClass('android.content.Intent');			receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {				onReceive: function(context, intent) {					plus.android.importClass(intent); //引入intent类					let data = intent.getStringExtra('barcode_string'); //广播数据标签					that.antiShake(data);				}			});			main.registerReceiver(receiver, filter); //注册监听		},		//取消监听扫描头		cancelScan() {			main.unregisterReceiver(receiver);		},		//防重复		antiShake: function(code) {			if (shakeIsShow) return false;			shakeIsShow = true;			setTimeout(function() {				shakeIsShow = false;			}, 150);			this.$emit("resultCode", code)		}	}};</script><style>page {	background-color: #efeff4;}.content {	text-align: center;}</style>
 |