104 lines
2.5 KiB
Markdown
104 lines
2.5 KiB
Markdown
|
||
# EmblemScanner 微信小程序扫码验证模块
|
||
|
||
## Release notes
|
||
- Version 1.0.1: initial release
|
||
- Version 1.1.0: sub package support
|
||
|
||
|
||
## 概述
|
||
|
||
EmblemScanner 是一个专为微信小程序设计的二维码扫描验证模块,集成了先进的 AI 图像识别技术和二维码检测算法,能够快速准确地识别和验证二维码。
|
||
|
||
## 集成方式和接口
|
||
|
||
### 调用参数
|
||
|
||
| 参数 | 说明 | 示例值 |
|
||
|------|------|--------|
|
||
| return_page | 扫描完成后跳转的页面路径 | `/pages/scan_result/scan_result` |
|
||
|
||
### 扫描结果
|
||
|
||
扫描成功后,模块会跳转到指定的 return_page,携带以下参数:
|
||
- `ok=1` - 扫描成功
|
||
- `qr_code` - 二维码内容
|
||
- `serial_code` - 验证序列号(如有)
|
||
|
||
扫描失败时:
|
||
- `ok=0` - 扫描失败
|
||
|
||
### 依赖要求
|
||
|
||
- 相机权限
|
||
- 网络访问权限(连接 themblem.com API等)
|
||
|
||
## 使用步骤
|
||
|
||
### 1. 项目准备
|
||
创建 JS 版小程序项目。
|
||
|
||
### 2. 文件部署
|
||
解压 emblemscanner 代码到小程序项目目录。
|
||
|
||
```
|
||
pages/emblemscanner/
|
||
├── assets/ # 静态资源
|
||
├── emblemscanner.json # 页面配置
|
||
├── emblemscanner.wxml # 页面结构
|
||
├── emblemscanner.wxss # 样式文件
|
||
├── emblemscanner.js # 主页面逻辑
|
||
├── libemblemscanner.js # 核心库
|
||
├── qrprocessor.js # 二维码处理器
|
||
├── qrtool.wx.js # 二维码工具
|
||
├── qrtool.wx.wasm.br # WebAssembly 二进制
|
||
├── upload.js # 上传模块
|
||
└── worker/ # Worker 线程
|
||
```
|
||
|
||
### 3. 项目配置
|
||
|
||
在 `app.json` 中添加页面和 worker 配置:
|
||
|
||
```json
|
||
{
|
||
"pages": [
|
||
"pages/index/index",
|
||
"pages/emblemscanner/emblemscanner",
|
||
"pages/logs/logs"
|
||
],
|
||
"workers": "pages/emblemscanner/worker"
|
||
}
|
||
```
|
||
|
||
### 4. 域名配置
|
||
|
||
参考[微信小程序网络配置指南](https://developers.weixin.qq.com/miniprogram/dev/framework/ability/network.html),在小程序后台配置合法域名:
|
||
|
||
- `themblem.com`
|
||
|
||
### 5. 扫码调用
|
||
|
||
#### 跳转到扫码页面:
|
||
```javascript
|
||
navigateToScanner() {
|
||
wx.navigateTo({
|
||
url: '/pages/emblemscanner/emblemscanner?return_page=/pages/scan_result/scan_result'
|
||
})
|
||
}
|
||
```
|
||
|
||
#### 处理扫码结果:
|
||
```javascript
|
||
onLoad(options) {
|
||
var verify_ok = options['ok']; // ok == 1表示验证通过
|
||
var qr_code = options['qr_code']; // 二维码内容
|
||
var serial_code = options['serial_code']; // 序列码
|
||
|
||
this.setData({
|
||
verify_ok,
|
||
qr_code,
|
||
serial_code,
|
||
})
|
||
}
|
||
``` |