kyy
2025-02-11 bb05da47c66341aa5d65c965528271d03f37a1e1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<template>
    <view class="home-container">
        <view class="intro">广播名称:com.android.server.scannerservice.broadcast</view>
        <view class="intro">广播键值:scannerdata</view>
 
        <view class="intro">主动开始扫描广播:com.scan.onStartScan</view>
        <view class="intro">主动结束扫描广播:com.scan.onEndScan</view>
 
        <text class="intro">详见:</text>
        <view class="href">
            <uni-link :href="href" text="Seuic东集-CRUISE Ge 工业级智能产品说明pdf"></uni-link>
        </view>
        <br />
 
        <view>
            <u-button type="primary" text="开始扫码" @click="openScan"></u-button>
        </view>
 
        <view class="result-container">
            <input v-model="result" autoHeight height='200'></input>
        </view>
    </view>
</template>
 
<script>
    import { broadcastScan } from '@/utils/scanCode.js';
    export default {
        data() {
            return {
                href: 'https://code.dt-insight.com/pdf?url=https://obs-dj-gym.obs.cn-east-3.myhuaweicloud.com/pdf/202205/1529643516374945792.pdf',
                result: '',
            }
        },
        methods: {
            // 自定义扫描的结果回调函数
            getScanCode(code) {
                let parseData = code.trim();
                console.log('自定义扫描的结果回调函数:', parseData);
                this.result = parseData;
            },
            // 主动触发扫描
            openScan() {
                broadcastScan.triggerScan();
            },
        },
        // onLoad 是在页面加载时触发,用于页面的初始化操作,只执行一次
        onLoad() {
            // init传入一个回调函数做参数,在扫描时候会将数据传入此方法里,然后处理此方法的自定义业务逻辑
            broadcastScan.init(this.getScanCode);
        },
        onUnload() {
            broadcastScan.stop();
        },
        // 在页面展示时触发,用于处理页面显示相关的逻辑,可能会多次执行,包括页面首次展示和从后台切换到前台时
        onShow() {
            broadcastScan.start();
        },
        onHide() {
            broadcastScan.stop();
        },
    }
</script>
 
<style lang="scss">
    .home-container {
        padding: 20px;
        font-size: 14px;
        line-height: 24px;
 
        .bth-list {
            display: flex;
            flex-direction: row;
        }
 
        .result-container {
            margin-top: 10rpx;
        }
    }
</style>