jenly1314 / ZXingLite

🔥 ZXing的精简极速版,优化扫码和生成二维码/条形码,内置闪光灯等功能。扫描风格支持:微信的线条样式,支付宝的网格样式。几句代码轻松拥有扫码功能 ,ZXingLite让集成更简单。(扫码识别速度快如微信)
https://jenly1314.github.io/ZXingLite/
Apache License 2.0
3.03k stars 470 forks source link

提一个建议 #205

Closed burning110-lab closed 1 year ago

burning110-lab commented 1 year ago

看了源码后,发现在解析二维码过程中出现异常后直接try catch没有去友好处理异常,然后将异常友好的返回的界面上。虽然有扫描失败的回调,但是回调并没有明确是啥问题导致扫描解析失败的

jenly1314 commented 1 year ago

在设计这个回调之前就有考虑过要不要把异常传给失败这个回调;当时我大概反问了自己如下几个问题:

  1. 扫码识别失败,会是什么问题?

    只要是前面没有警告日志的情况下,扫码流程走到了最后,扫码识别失败的的根本原因就是解析失败。

  2. 扫码识别是一个多对一的流程,一帧图像数据可能会进行多次识别,只要有一次成功就返回;只有都失败时,才返回失败,此时如果给异常该给哪个?

    感觉返回哪个都不是很合适,又好像返回哪个都可以。因为失败的异常是原因一样的,都是解析失败。

  3. 把异常返回给失败的回调是否能让用户更优雅的处理失败的场景?

    并不能,因为能返回的异常就是解析失败,就算返回也只是一个安慰而已。

既然如此,给个失败回调足矣。