您当前的位置: 首页 > 知识百科 > 小程序调用扫码怎么做?如何实现调用扫码功能?

小程序调用扫码怎么做?如何实现调用扫码功能?

时间:2023-07-01 14:05 阅读数:95 人阅读 分类:知识百科

  小程序调用扫码怎么做?如何实现调用扫码功能?微信小程序有扫码的功能,那么小程序怎么调用扫码功能呢?如果大家想知道小程序调用扫码怎么做就,那么就跟着微小乔小编来往下了解吧。

  小程序调用扫码怎么实现?

  官方的Demo是写好了一个CaptureActivity提供回调,从自己的页面跳到CaptureActivity,扫描后把数据传回自己的页面(一次只能扫码一条)。

  但是我们项目想做到一个自定义扫码布局,并实现类似扫码枪的效果,即在当前页面连续扫码,且在当前页面有所反馈。

  1、导入

  将zxing.jar放在app的libs下,并右键aslibrary

  新建一个将zxing文件放入根目录

  导入需要的资源文件ids.xml、activity_capture、qr_code_bg.9.png、scan_line.png、shadow.png、res底下raw文件夹

  注册权限  

  注册activity  

  2、使用

  主要用到的几个类:

  CaptureActivity:微信小程序扫码页面

  CameraManager:处理Activity的消息机制

  CameraConfigurationManager:该类主要负责设置相机的参数信息

  DecodeFormatManager:设置扫码的种类

  修改:

  布局文件就不说了,修改成自己想要的样子,和原文件有一点不同的是,将SurfaceView设置到根布局下,设置layout_height为match_parent(不这么修改,会导致变形,因为预览用的是屏幕分辨率的宽高)。其他的想怎么改就这么改了。

  CaptureActivity文件:

  handleDecode()方法中,把页面跳转的语句删除,设置为加载数据(这里我为了方便只设置了一个Textview加载小程序数据,可以换成listview)

  initCrop()方法中,原微信小程序算法为:

  int x = cropLeft * cameraWidth / containerWidth;

  int y = cropTop * cameraHeight / containerHeight;

  int width = cropWidth * cameraWidth / containerWidth;

  int height = cropHeight * cameraHeight / containerHeight;

  在这我没弄懂原作者的意思,这算法在全屏没有问题,但是自定义的时候,由于调用的cameraHeight是屏幕的分辨率,而containerHeight是布局高度,会导致扫码框范围变形(布局是看不出来的,看打印日志计算就知道了)。

  修改为:

  int x = cropLeft;

  int y = cropTop;

  int width = cropWidth;

  int height = cropHeight;

  CameraConfigurationManager文件:

  设置预览效果:搜索parameters.setPreviewSize

  CaptureActivityHandler文件:

  原作者是扫码一次后就不继续扫码,这里我们做个修改。

  设置一个线程,控制扫码间隔(否则会连续扫码,不合适),这里我设置的是间隔2s

  [java] view plain copy print?

  // 设置扫码间隔

  class MyThread extends Thread

  {

  @Override

  public void run()

  {

  super.run();

  try

  {

  MyThread.sleep(2000);

  cameraManager.requestPreviewFrame(decodeThread.getHandler(), R.id.decode);

  } catch (InterruptedException e)

  {

  e.printStackTrace();

  }

  }

  }

  然后在handleMessage()的message.what == R.id.decode_succeeded下面修改

  添加:new MyThread().start();

  这样我们就可以每隔2s扫码一次了

  最后我们要小程序调用扫码效果就实现了,这个功能虚拟机没法做测试,各位下载Demo自己演示吧。

  小程序调用扫码怎么做?如何实现调用扫码功能?以上是小编整理小程序调用扫码的相关内容了哦,希望以上的内容对于大家了解小程序调用扫码会有帮助哦,大家快来多多的关注微小乔哦。

  相关推荐:

  小程序扫码功能是什么?怎么使用扫码功能?

  小程序获取方式升级,方便用户信息进行互通

  微信小程序客服气泡怎么实现?实现客服气泡代码