demo.vue 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <template>
  2. <div>
  3. <button type="primary" @tap='onAdd' class="span-10 font-md px-0"><view class="iconfont icon-tianjia1 font-md mr d-inline-block"></view>添加物品</button>
  4. <button type="primary" @click="initScanFunc">初始化扫描</button>
  5. <br/>
  6. <button type="primary" @click="closeScanFunc">结束扫描</button>
  7. <br/>
  8. <button type="primary" @click="scanStartFunc()">开启扫描</button>
  9. <br/>
  10. <button type="primary" @click="scanStopFunc()">停止扫描</button>
  11. <br/>
  12. <p>设置连续扫描时间间隔</p><input type="number" v-model="invTime" placeholder="时间间隔(单位ms)">
  13. <button type="primary" @click="continueScanFunc(true)">连续扫描开启</button>
  14. <br/>
  15. <button type="primary" @click="continueScanFunc(false)">连续扫描关闭</button>
  16. <text id="testcontent" class="intro">\n测试步骤:\n1.点击初始化扫描\n2.按设备黄色扫描按键扫描到条码后弹窗提示条码数据\n3.页面关闭前点击结束扫描或调用closeScan()\n4.如需使用连续扫描功能,请点击连续扫描开启或关闭按钮,建议设置连续扫描时间间隔</text>
  17. </div>
  18. </template>
  19. <script>
  20. //获取module
  21. var barcodeModel = uni.requireNativePlugin("iData-BarcodePlugin-BarcodeModule")
  22. const modal = uni.requireNativePlugin('modal');
  23. var globalEvent = uni.requireNativePlugin('globalEvent');
  24. export default {
  25. onLoad() {
  26. globalEvent.addEventListener('iDataBarcodeEvent', function(e) {
  27. modal.toast({
  28. message: "收到条码:" + JSON.stringify(e),
  29. duration: 1.5
  30. });
  31. //连续扫描如果间隔时间比较短,会出现toast不提示的情况,数据可以正常接收到,建议查看控制台输出
  32. console.log(JSON.stringify(e));
  33. });
  34. },
  35. onUnload() {
  36. barcodeModel.closeScan((ret) => {
  37. modal.toast({
  38. message: ret,
  39. duration: 1.5
  40. });
  41. });
  42. },
  43. data(){
  44. return{
  45. invTime:"500"
  46. }
  47. },
  48. methods: {
  49. initScanFunc() {
  50. barcodeModel.initScan((ret) => {
  51. modal.toast({
  52. message: ret,
  53. duration: 1.5
  54. });
  55. });
  56. },
  57. scanStartFunc() {
  58. barcodeModel.scanStart((ret) => {
  59. modal.toast({
  60. message: ret,
  61. duration: 1.5
  62. });
  63. });
  64. },
  65. scanStopFunc() {
  66. barcodeModel.scanStop((ret) => {
  67. modal.toast({
  68. message: ret,
  69. duration: 1.5
  70. });
  71. });
  72. },
  73. continueScanFunc(enable) {
  74. // 连续扫描设置:先设置扫描间隔时间,然后开启扫描开关
  75. if(enable){
  76. //设置连续扫描间隔时间
  77. barcodeModel.intervalSet(this.invTime,
  78. (ret) => {
  79. modal.toast({
  80. message: ret,
  81. duration: 1.5
  82. });
  83. });
  84. }
  85. //设置连续扫描
  86. barcodeModel.continueScan(enable,
  87. (ret) => {
  88. modal.toast({
  89. message: ret,
  90. duration: 1.5
  91. });
  92. });
  93. },
  94. closeScanFunc() {
  95. barcodeModel.closeScan((ret) => {
  96. modal.toast({
  97. message: ret,
  98. duration: 1.5
  99. });
  100. });
  101. }
  102. }
  103. }
  104. </script>
  105. <style>
  106. </style>