76 lines
1.5 KiB
Vue
76 lines
1.5 KiB
Vue
<template>
|
|
<view>
|
|
<web-view :src="url" @message="handleMessage"></web-view>
|
|
</view>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
|
// #ifdef H5
|
|
window.scan_code = null;
|
|
// #endif
|
|
|
|
// #ifndef H5
|
|
var scan_code = null;
|
|
// #endif
|
|
|
|
import {
|
|
mapState,
|
|
mapMutations
|
|
} from 'vuex'
|
|
|
|
|
|
export default {
|
|
data() {
|
|
return {
|
|
cTimer: null,
|
|
url: 'about:blank'
|
|
};
|
|
},
|
|
computed: mapState(['Config', 'StateCode', 'notice', 'plantformInfo', 'shopInfo', 'userInfo', 'hasLogin']),
|
|
onLoad: function(options) {
|
|
uni.setNavigationBarTitle({
|
|
title:this.__('扫描')
|
|
});
|
|
|
|
var _this = this;
|
|
let url = _this.Config.fileBasePath + '/h5/hybrid/html/scanbox.html'
|
|
|
|
this.setData({url:url})
|
|
|
|
|
|
if (_this.cTimer == null) {
|
|
_this.cTimer = setInterval(function() {
|
|
if (scan_code)
|
|
{
|
|
_this.notice.postNotificationName("ScanCode", scan_code)
|
|
clearInterval(_this.cTimer);
|
|
_this.cTimer = null;
|
|
|
|
scan_code = null;
|
|
|
|
uni.navigateBack();
|
|
}
|
|
}, 1000)
|
|
}
|
|
},
|
|
onUnload: function() {
|
|
//移除通知
|
|
// 离开页面,注销事件
|
|
var that = this
|
|
this.notice.removeNotification("ScanCode", that);
|
|
},
|
|
methods: {
|
|
handleMessage(evt) {
|
|
//console.log('接收到的消息:' + JSON.stringify(evt.detail.data));
|
|
this.notice.postNotificationName("ScanCode", evt.detail.data)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss">
|
|
@import "../../styles/_variables";
|
|
</style>
|