From cdec1838ace902dc1bfaca4c2afdddb01fa75f9d Mon Sep 17 00:00:00 2001
From: iqudoo
Date: Tue, 26 May 2026 02:37:01 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96++?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 16 +-
demo.html | 6 -
dist/index.d.ts | 132 +++-
dist/index.html | 7 +-
dist/index.js | 2 +-
dist/index.md | 16 +-
src/_core.js | 40 +-
src/_export.js | 35 +-
src/index.js | 8 +-
src/polyfill/_es6.js | 7 +
src/services/embedScanBridge.js | 12 +
src/services/provider/scan.js | 375 +++++++--
src/services/web/index.js | 1267 +++++++++++++++++++++++++++----
types/index.d.ts | 132 +++-
14 files changed, 1788 insertions(+), 267 deletions(-)
diff --git a/README.md b/README.md
index d3fe011..f501659 100644
--- a/README.md
+++ b/README.md
@@ -61,9 +61,6 @@ IScan.config({
// 自动选择可用扫码方式:桥接 -> 微信 -> Web 摄像头 -> 图片识别
IScan.startScan();
-// 仅打开 Web 视频扫码
-IScan.scanVideo();
-
// 仅选择图片识别
IScan.scanImage();
@@ -126,6 +123,11 @@ interface ScanConfigOptions {
| `webScanImageFallbackOnVideoError` | 摄像头不可用或打开失败时,是否自动弹出拍照/选图(适用于部分安卓内置浏览器) | `true` |
| `webScanVideoAccessTimeout` | 打开摄像头超时(毫秒),超时后走图片回退 | `10000` |
| `webScanVideoReadyTimeout` | 摄像头已开但无画面超时(毫秒),超时后走图片回退 | `8000` |
+| `webScanCameraPermissionDialogEnabled` | `startScan` 走 Web 摄像头前是否先展示权限说明弹窗 | `true` |
+| `webScanCameraPermissionTitle` | 权限说明弹窗标题 | `需要使用摄像头` |
+| `webScanCameraPermissionMessage` | 权限说明弹窗正文 | 见类型定义默认值 |
+| `webScanCameraPermissionConfirmText` | 确认按钮文案 | `继续` |
+| `webScanCameraPermissionCancelText` | 取消按钮文案 | `取消` |
| `scanBeepAudio` | 扫码成功提示音地址(任意模式匹配成功时播放) | 内置提示音 |
| `scanBeepEnabled` | 扫码成功是否播放提示音 | `true` |
| `initWechatJssdk` | 微信 JSSDK 初始化配置,仅微信环境生效 | 无 |
@@ -292,14 +294,6 @@ console.log(IScan.getStatus());
IScan.startScan();
```
-### `scanVideo(): void`
-
-直接开启 Web 摄像头扫码。扫码结果通过 `onScanListener` 回调。
-
-```js
-IScan.scanVideo();
-```
-
### `scanImage(): void`
直接选择图片进行识别。识别结果通过 `onScanListener` 回调。
diff --git a/demo.html b/demo.html
index 963c142..b35df38 100644
--- a/demo.html
+++ b/demo.html
@@ -207,7 +207,6 @@
点击开始后,会按桥接、微信、Web 摄像头、图片识别的顺序选择可用扫码方式。
-
@@ -247,7 +246,6 @@
IScan.startScan();
IScan.scanImage();
-IScan.scanVideo();
IScan.stopScan();
@@ -349,10 +347,6 @@ IScan.stopScan();
IScan.scanImage();
}
- function scanVideo() {
- IScan.scanVideo();
- }
-
ready();
IScan 通用扫码SDK
统一接入桥接扫码、微信小程序、微信 JSSDK 扫码、Web 摄像头扫码、图片识别和扫码枪输入。
功能说明
- 支持桥接扫码、微信 JSSDK 扫码、Web 摄像头扫码、图片识别和扫码枪输入。
- 浏览器环境使用WASM库识别二维码和条形码。
- 扫码结果由监听规则统一回调,支持正则匹配和优先级排序。
操作
点击开始后,会按桥接、微信、Web 摄像头、图片识别的顺序选择可用扫码方式。
错误信息
错误信息可能来源于扫码结果、扫码过程、扫码初始化等。
接入方式
IScan.config({
+ }IScan 通用扫码SDK
统一接入桥接扫码、微信小程序、微信 JSSDK 扫码、Web 摄像头扫码、图片识别和扫码枪输入。
功能说明
- 支持桥接扫码、微信 JSSDK 扫码、Web 摄像头扫码、图片识别和扫码枪输入。
- 浏览器环境使用WASM库识别二维码和条形码。
- 扫码结果由监听规则统一回调,支持正则匹配和优先级排序。
操作
点击开始后,会按桥接、微信、Web 摄像头、图片识别的顺序选择可用扫码方式。
错误信息
错误信息可能来源于扫码结果、扫码过程、扫码初始化等。
接入方式
IScan.config({
webScanEnabled: true,
webScanCanvasEnabled: true,
webScanCloseButtonStyle: "background: rgba(27, 99, 244, 0.88);",
@@ -182,7 +182,6 @@
IScan.startScan();
IScan.scanImage();
-IScan.scanVideo();
IScan.stopScan();