...载入中.._hbuilderx vue 扫一扫">

当前位置:   article > 正文

vue+hbuilderX 实现扫一扫功能_hbuilderx vue 扫一扫

hbuilderx vue 扫一扫

最近项目上有个扫一扫功能,用了很多方法,最终在网上扒到这个最容易、最方便的方法和大家分享一下喽~

感谢  https://blog.csdn.net/qq_35844177/article/details/78951825

  1. <template>
  2. <div class="scan">
  3. <div id="bcid">
  4. <div style="height:40%"></div>
  5. <p class="tip">...载入中...</p>
  6. </div>
  7. <footer>
  8. <button @click="startRecognize">1.创建控件</button>
  9. <button @click="startScan">2.开始扫描</button>
  10. <button @click="cancelScan">3.结束扫描</button>
  11. <button @click="closeScan">4.关闭控件</button>
  12. </footer>
  13. </div>
  14. </template>
  15. <script type='text/ecmascript-6'>
  16. let scan = null
  17. export default {
  18. data() {
  19. return {
  20. codeUrl: ''
  21. }
  22. },
  23. mounted () {
  24. this.startRecognize()
  25. setTimeout(() => {
  26. this.startScan()
  27. }, 500)
  28. },
  29. methods: {
  30. // 创建扫描控件
  31. startRecognize () {
  32. let that = this
  33. if (!window.plus) return
  34. scan = new plus.barcode.Barcode('bcid')
  35. scan.onmarked = onmarked
  36. function onmarked (type, result, file) {
  37. switch (type) {
  38. case plus.barcode.QR:
  39. type = 'QR'
  40. break
  41. case plus.barcode.EAN13:
  42. type = 'EAN13'
  43. break
  44. case plus.barcode.EAN8:
  45. type = 'EAN8'
  46. break
  47. default:
  48. type = '其它' + type
  49. break
  50. }
  51. result = result.replace(/\n/g, '')
  52. that.codeUrl = result
  53. alert(result)
  54. that.closeScan()
  55. }
  56. },
  57. // 开始扫描
  58. startScan () {
  59. if (!window.plus) return
  60. scan.start()
  61. },
  62. // 关闭扫描
  63. cancelScan () {
  64. if (!window.plus) return
  65. scan.cancel()
  66. },
  67. // 关闭条码识别控件
  68. closeScan () {
  69. if (!window.plus) return
  70. scan.close()
  71. }
  72. },
  73. destroyed () {
  74. this.cancelScan()
  75. this.closeScan()
  76. }
  77. }
  78. </script>
  79. <style lang="scss">
  80. .scan {
  81. height: 100%;
  82. #bcid {
  83. width: 100%;
  84. position: absolute;
  85. left: 0;
  86. right: 0;
  87. top: 0;
  88. bottom:3rem;
  89. text-align: center;
  90. color: #fff;
  91. background: #ccc;
  92. }
  93. footer {
  94. position: absolute;
  95. left: 0;
  96. bottom: 1rem;
  97. height: 2rem;
  98. line-height: 2rem;
  99. z-index: 2;
  100. }
  101. }
  102. </style>

当把上面代码copy到自己的项目中的时候终端上会有如下报错

这个plus是一个自定义当行组件,可以不用管它,然后将项目进行打包生成dist文件

打开HbuilderX

文件 -> 新建-> 项目

输入项目名称后,点击创建,生成一个新的项目,

然后把项目打包生成的dist中的文件拷到此项目下,覆盖掉项目中已有的文件

打包:

打开此项目下的manifest.json文件

进行自己需要的一些配置,也可以默认配置

发行 -> 原生App-云打包

选择打包等着他打包成apk文件就可以了!

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/854737
推荐阅读
相关标签