当前位置:   article > 正文

微信小程序实现连续扫码_微信小程序实现连续扫码功能 将扫码信息异步传到后端

微信小程序实现连续扫码功能 将扫码信息异步传到后端

微信小程序给我们提供了 wx.scanCode 调起客户端进行扫码,每次扫码完都会关闭扫瞄界面,当我们遇到连续扫码的需求时,wx.scanCode就满足不了了,我们可以用 camera 组件实现扫码枪的效果。

1.微信公众平台授权摄像头

首先,我们需要用户授权 scope.camera。登陆微信公众平台,在设置中找到「服务内容声明」,更新「用户隐私保护指引」,在「用户隐私保护指引设置」中添加「摄像头」并提交审核,审核通过后小程序中就可以正常使用camera组件了。

2.具体代码实现

  1. <template>
  2. <view>
  3. <camera
  4. mode="scanCode"
  5. device-position="back"
  6. flash="off"
  7. @scancode="takeCode"
  8. @binderror="binderror"
  9. style="width: 100%; height: calc(100vh)"
  10. ></camera>
  11. </view>
  12. </template>
  13. <script>
  14. export default {
  15. data() {
  16. return {
  17. flag: true,
  18. };
  19. },
  20. onLoad() {
  21. this.ctx = wx.createCameraContext();
  22. },
  23. onUnload() {
  24. // 在此处理用户返回上一页时的逻辑,下面仅供参考
  25. let pages = getCurrentPages();
  26. pages[pages.length - 2].$vm.refresh();
  27. },
  28. methods: {
  29. takeCode(e) {
  30. const that = this;
  31. if (that.flag) {
  32. that.flag = false;
  33. // 在此处理扫描结果或请求接口
  34. // 最好加上定时器,防止重复提交
  35. setTimeout(() => {
  36. that.flag = true;
  37. }, 1000);
  38. }
  39. },
  40. error(e) {
  41. console.log("e", e.detail);
  42. },
  43. // 用户不允许使用摄像头时触发
  44. binderror() {
  45. wx.showToast({
  46. icon: "none",
  47. title: "请授权摄像头",
  48. });
  49. setTimeout(() => {
  50. uni.navigateBack();
  51. }, 1000);
  52. },
  53. },
  54. };
  55. </script>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/651327
推荐阅读
相关标签
  

闽ICP备14008679号