关于vue转uniapp项目的扫一扫功能实现

别的不多说了,直接上结果

<template>

  <div class="scan">

    <div id="bcid">

      <div style="height:40%"></div>

      <p class="tip">...载入中...</p>

    </div>

  </div>

</template>

<script type='text/ecmascript-6'>

  let scan = null

  export default {

    data () {

      return {

        codeUrl: '',

      }

    },

    created(){

      this.startRecognize()

    },

    // mounted(){

    //   this.startRecognize()

    // },

    methods: {

      // 创建扫描控件

      startRecognize () {

        let that = this

        setTimeout( () =>{

            if (!window.plus) return

            scan = new plus.barcode.Barcode('bcid')

            scan.onmarked = onmarked

            function onmarked (type, result, file) {

            switch (type) {

                case plus.barcode.QR:

                type = 'QR'

                break

                case plus.barcode.EAN13:

                type = 'EAN13'

                break

                case plus.barcode.EAN8:

                type = 'EAN8'

                break

                default:

                type = '其它' + type

                break

            }

            result = result.replace(/\n/g, '')

            that.codeUrl = result

            alert(result)

            that.closeScan()

            }

            if (!window.plus) return

            scan.start()

        },100)

      },

      // 开始扫描

    //   startScan () {

    //     if (!window.plus) return

    //     scan.start()

    //   },

      // 关闭扫描

      cancelScan () {

        if (!window.plus) return

        scan.cancel()

      },

      // 关闭条码识别控件

      closeScan () {

        if (!window.plus) return

        scan.close()

      },

    }

  }

</script>

<style lang="less">

  .scan {

    height: 100%;

    #bcid {

      width: 100%;

      position: absolute;

      left: 0;

      right: 0;

      top: 0;

      bottom: 3rem;

      text-align: center;

      color: #fff;

      background: #ccc;

    }

    footer {

      position: absolute;

      left: 0;

      bottom: 1rem;

      height: 2rem;

      line-height: 2rem;

      z-index: 2;

    }

  }

</style>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值