tj-ai-qrcode 1.0.0 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -14,14 +14,6 @@
14
14
  - **超时自动拍照**:支持设置超时时间,超时后自动拍照
15
15
  - **音频提示**:可配置识别过程中的音频提示
16
16
 
17
- ### 1.3 应用场景
18
- - 商品防伪验证
19
- - 证件信息采集
20
- - 物流信息查询
21
- - 会员信息识别
22
- - 产品溯源管理
23
- - 特殊场景下的信息采集
24
-
25
17
  ## 2. 安装方法
26
18
 
27
19
  ### 2.1 npm安装
@@ -30,17 +22,9 @@ npm install tj-ai-qrcode
30
22
  ```
31
23
 
32
24
  ### 2.2 小程序引入
33
- 在小程序项目的app.json中配置插件:
34
25
 
35
- ```json
36
- {
37
- "plugins": {
38
- "tj-ai-qrcode": {
39
- "version": "1.0.0",
40
- "provider": "插件提供者appid"
41
- }
42
- }
43
- }
26
+ ```bash
27
+ 在微信开发者工具里面,点击工具构建npm
44
28
  ```
45
29
 
46
30
  ### 2.3 页面使用
@@ -49,7 +33,7 @@ npm install tj-ai-qrcode
49
33
  ```json
50
34
  {
51
35
  "usingComponents": {
52
- "camera-take-photo": "tj-ai-qrcode/cameraTakePhoto"
36
+ "camera-take-photo": "tj-ai-qrcode/cameraTakePhoto/cameraTakePhoto"
53
37
  }
54
38
  }
55
39
  ```
@@ -116,17 +100,209 @@ Page({
116
100
 
117
101
  | 属性名 | 类型 | 默认值 | 说明 |
118
102
  | --- | --- | --- | --- |
119
- | isPlayAudio | Boolean | false | 是否播放音频提示 |
120
- | playAudioURL | String | 内置URL | 音频播放地址 |
103
+ | audioUrl | String | '' | 音频播放地址 |
104
+ | autoPhoto | Boolean | true | 是否自动拍照 |
105
+ | autoPhotoDelay | Number | 12 | 自动拍照延迟时间(秒) |
106
+ | syncParse | Boolean | false | 是否同步解析二维码 |
107
+
108
+ ### 4.2 事件绑定
109
+
110
+ | 事件名 | 说明 | 回调参数 |
111
+ | --- | --- | --- |
112
+ | bind:finish | 解析完成时触发,包含解析值和大小图(如未解析到,自动拍照,则解析值为空) | `{code_data: String, photo_max_path: String, photo_min_path: String, maxZoom: Number}` |
113
+ | bind:toast | 自定义提示toast信息时触发 | `{toast: String}` |
114
+ | bind:progress | 进度条变化时触发 | `{progressNumber: Number}` |
115
+ | bind:takeSmallPhoto | 小图拍照时触发 | `{path: String, base: String}` |
116
+ | bind:takeBigPhoto | 大图拍照时触发 | `{path: String, base: String}` |
117
+
118
+ ### 4.3 插槽
119
+
120
+ | 插槽名 | 说明 |
121
+ | --- | --- |
122
+ | toast | 自定义提示信息区域 |
123
+ | focus-box | 自定义聚焦方框区域 |
124
+ | text | 自定义文本提示区域 |
125
+ | progress | 自定义进度条区域 |
126
+
127
+ ## 5. 高级使用示例
121
128
 
129
+ ### 5.1 完整配置示例
122
130
 
131
+ ```html
132
+ <camera-take-photo
133
+ audioUrl="https://ai.tj5.cc:35437/static/ai_audio/AI_Audio.mp3"
134
+ autoPhoto="true"
135
+ autoPhotoDelay="10"
136
+ syncParse="false"
137
+ bind:finish="onQRCodeFinish"
138
+ bind:toast="onToast"
139
+ bind:progress="onProgress"
140
+ bind:takeSmallPhoto="onTakeSmallPhoto"
141
+ bind:takeBigPhoto="onTakeBigPhoto"
142
+ >
143
+ <!-- 自定义提示信息 -->
144
+ <view slot="toast" class="custom-toast">
145
+ <text>请对准三维码</text>
146
+ </view>
147
+
148
+ <!-- 自定义聚焦方框 -->
149
+ <view slot="focus-box" class="custom-focus-box">
150
+ <view class="corner top-left"></view>
151
+ <view class="corner top-right"></view>
152
+ <view class="corner bottom-left"></view>
153
+ <view class="corner bottom-right"></view>
154
+ </view>
155
+
156
+ <!-- 自定义文本提示 -->
157
+ <view slot="text" class="custom-text">
158
+ <text>请将三维码置于框内</text>
159
+ </view>
160
+
161
+ <!-- 自定义进度条 -->
162
+ <view slot="progress" class="custom-progress">
163
+ <progress percent="{{progress}}" stroke-width="8" color="#00ff00" />
164
+ </view>
165
+ </camera-take-photo>
166
+ ```
167
+
168
+ ```javascript
169
+ Page({
170
+ data: {
171
+ progress: 0
172
+ },
173
+
174
+ /**
175
+ * 三维码识别完成回调
176
+ * @param {Object} e - 事件对象
177
+ */
178
+ onQRCodeFinish: function(e) {
179
+ const { code_data, photo_max_path, photo_min_path, maxZoom } = e.detail;
180
+ console.log('识别结果:', code_data);
181
+ console.log('小图路径:', photo_min_path);
182
+ console.log('大图路径:', photo_max_path);
183
+ console.log('放大倍数:', maxZoom);
184
+
185
+ // 处理识别结果,例如上传服务器进行验证
186
+ this.uploadResult(photo_min_path, photo_max_path, code_data);
187
+ },
188
+
189
+ /**
190
+ * 自定义提示信息回调
191
+ * @param {Object} e - 事件对象
192
+ */
193
+ onToast: function(e) {
194
+ console.log('提示信息:', e.detail.toast);
195
+ },
196
+
197
+ /**
198
+ * 进度条变化回调
199
+ * @param {Object} e - 事件对象
200
+ */
201
+ onProgress: function(e) {
202
+ this.setData({
203
+ progress: e.detail.progressNumber
204
+ });
205
+ console.log('进度:', e.detail.progressNumber);
206
+ },
207
+
208
+ /**
209
+ * 小图拍照回调
210
+ * @param {Object} e - 事件对象
211
+ */
212
+ onTakeSmallPhoto: function(e) {
213
+ console.log('小图拍照完成:', e.detail);
214
+ },
215
+
216
+ /**
217
+ * 大图拍照回调
218
+ * @param {Object} e - 事件对象
219
+ */
220
+ onTakeBigPhoto: function(e) {
221
+ console.log('大图拍照完成:', e.detail);
222
+ },
223
+
224
+ /**
225
+ * 上传识别结果到服务器
226
+ */
227
+ uploadResult: function(photo_min_path, photo_max_path, code_data) {
228
+ // 实现上传逻辑
229
+ wx.uploadFile({
230
+ url: 'https://your-server.com/api/upload',
231
+ success: function(res) {
232
+ console.log('上传成功:', res.data);
233
+ },
234
+ fail: function(err) {
235
+ console.error('上传失败:', err);
236
+ }
237
+ });
238
+ }
239
+ });
240
+ ```
241
+
242
+ ### 5.2 同步解析模式示例
243
+
244
+ ```html
245
+ <camera-take-photo
246
+ syncParse="true"
247
+ bind:finish="onQRCodeFinish"
248
+ >
249
+ </camera-take-photo>
250
+ ```
251
+
252
+ ### 5.3 禁用自动拍照示例
253
+
254
+ ```html
255
+ <camera-take-photo
256
+ autoPhoto="false"
257
+ bind:finish="onQRCodeFinish"
258
+ >
259
+ </camera-take-photo>
260
+ ```
261
+
262
+ ## 6. 常见问题
263
+
264
+ ### 6.1 组件找不到的问题
265
+ - **问题**:Component is not found in path "miniprogram_npm/tj-ai-qrcode/cameraTakePhoto/cameraTakePhoto"
266
+ - **解决方案**:
267
+ 1. 确保已正确安装 npm 包:`npm install tj-ai-qrcode`
268
+ 2. 确保已在小程序中构建 npm:在微信开发者工具中,点击 "工具" -> "构建 npm"
269
+ 3. 确保组件路径引用正确:`tj-ai-qrcode/cameraTakePhoto`
270
+
271
+ ### 6.2 权限问题
272
+ - **问题**:相机权限被拒绝
273
+ - **解决方案**:组件会自动引导用户打开相机权限,用户需要在设置中允许小程序访问相机
274
+
275
+ ### 6.3 识别失败问题
276
+ - **问题**:三维码识别失败
277
+ - **解决方案**:
278
+ 1. 确保三维码清晰,无污渍、破损或折皱
279
+ 2. 确保三维码在相机视野中,且占满屏幕
280
+ 3. 确保光线充足,避免过度曝光或逆光
281
+
282
+ ## 7. 技术实现
283
+
284
+ ### 7.1 核心技术
285
+ - **jsQR 库**:用于二维码识别,经过优化以提高识别速度和准确率
286
+ - **微信小程序 Camera 组件**:用于获取视频流和拍照
287
+ - **Canvas 绘制**:用于图像处理和保存
288
+
289
+ ### 7.2 识别流程
290
+ 1. 获取相机视频流
291
+ 2. 实时解析视频帧中的二维码
292
+ 3. 根据识别结果调整相机放大倍数
293
+ 4. 识别成功后自动拍照(大小两张)
294
+ 5. 触发回调事件,返回识别结果和照片路径
295
+
296
+ ## 8. 版本历史
297
+
298
+ | 版本 | 日期 | 变更内容 |
299
+ | --- | --- | --- |
300
+ | 1.0.0 | 2026-01-01 | 初始版本 |
301
+ | 1.0.2 | 2026-03-25 | 优化识别算法,增加多插槽支持 |
123
302
 
124
303
  ## 9. 技术支持
125
304
 
126
305
  如有问题或建议,欢迎联系我们:
127
306
  - 邮箱:yfx@china315net.com
128
- - 项目地址:https://github.com/your-repo/tj-ai-qrcode
129
-
130
- ---
131
307
 
132
308
  **版权所有 © 2026 天鉴三维码**