更新记录

1.0.0(2026-01-13)

h5项目的扫码组件


平台兼容性

uni-app(3.7.2)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× × × ×
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
× × × × × × × × × × ×

其他

多语言 暗黑模式 宽屏模式
× ×
<godfreyScanCode
  ref="godfreyScanCodeRef"
  :continue="true"
  @success="handleSuccess"
  @error="handleError"
/>

import godfreyScanCode from '@/uni_modules/godfrey-scan-code/components/godfrey-scan-code/godfrey-scan-code.vue'

const godfreyScanCodeRef = ref()

function handleSuccess(res) {
  console.log("handleSuccess", res)
}

function handleError(err) {
  console.log("handleError", err)
}

1. 下载导入本插件

2. 安装jsqr插件

npm i jsqr@1.4.0

3. 在页面中引入本插件

4. 在本地调试需要改成https访问,否则会出现无法使用摄像头的错误。以下介绍配置https的几个要点

4.1 获取证书

4.1.1 mkcert下载地址:https://github.com/FiloSottile/mkcert/releases

4.1.2 下载后在该文件目录下打开cmd,这里要以管理运行方式打开cmd 执行以下命令

4.1.3 执行以下命令

mkcert-v1.4.4-windows-amd64.exe -install

4.1.4 第一次执行该命令可能有安装警告框弹出,点击是即可!安装成功。提示创建一个新的本地CA,本地CA现在已安装在系统信任存储中。

4.1.5 生成自签证书

mkcert-v1.4.4-windows-amd64.exe localhost 127.0.0.1 ::1 192.168.2.xx

4.1.6 在mkcert安装目录下,生成了自签证书。我们可以看到成功生成了localhost+3.pem证书文件和localhost+3-key.pem私钥文件

4.2 使用证书

4.2.1 如果是uniapp创建的h5项目,在h5项目目录下的mainfest.json中"h5"模块添加如下内容

注意:复制粘贴时换行加\n,组成字符串

"devServer": {
  "https": {
    "cert": "-----BEGIN CERTIFICATE-----\nMIIEazCCAtOgAwIBAgIRAMv7liCQ+tRLbLQX7Akj7NowDQYJKoZIhvcNAQELBQAw\ngYkxHjAcBgNVBAoTFW1rY2VydCBkZXZlbG9wbWVudCBDQTEvMC0GA1UECwwmREVT\nS1RPUC1FUE1ORVUyXExlbm92b0BERVNLVE9QLUVQTU5FVTIxNjA0BgNVBAMMLW1r\nY2VydCBERVNLVE9QLUVQTU5FVTJcTGVub3ZvQERFU0tUT1AtRVBNTkVVMjAeFw0y\nNjAxMTMwMTIzMTlaFw0yODA0MTMwMTIzMTlaMFoxJzAlBgNVBAoTHm1rY2VydCBk\nZXZlbG9wbWVudCBjZXJ0aWZpY2F0ZTEvMC0GA1UECwwmREVTS1RPUC1FUE1ORVUy\nXExlbm92b0BERVNLVE9QLUVQTU5FVTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\nggEKAoIBAQDoyIIWKvuIDUikaZh6E4LSmRxb5LT3t90LAJzIISBe1Jf0QulI3gcw\nm77bQqGZWf3vq58w+I+dTZFyjQhPZycd16Hqemphmzq7ijliQ5gT/rhH80hgIzXm\nfEwv8dNnFRVUxciCcOu3M+Q/oudWTXHmNXqeq+w87SKjOgF+rYpSQ/3TyAedBkQc\nyIsfVG9HjhNhuCgLAoONuhwFz1B2rFWtTw9k2J5vIAjqQpQ5Cl1/pZUiSp1PZJBB\n45bpiS5PqjGGdhioSSIwqzLRh/tJ9e18E752npBbh7C9uiaqGfDHOPa8STf4v4Zx\n26samoQOmMYl1qlQFaGDa90DwRJwdCmVAgMBAAGjfDB6MA4GA1UdDwEB/wQEAwIF\noDATBgNVHSUEDDAKBggrBgEFBQcDATAfBgNVHSMEGDAWgBRQT+jJh0eT2dCPVJqT\nb69RHfKVpTAyBgNVHREEKzApgglsb2NhbGhvc3SHBH8AAAGHEAAAAAAAAAAAAAAA\nAAAAAAGHBMCoZXEwDQYJKoZIhvcNAQELBQADggGBAD9pVSPJY0vLb+WhI8YakGo5\nxcB/vRFW69MUSwk80QMqp06VDp1n/0N0G/ChGyXb23a6fnw2OAvKbVO5UoxJX/op\n7GKAO9dKIe9bxrzL13t7FaJ88HJ3fjUP9nhbEIkPBzKCYaTurjzv4bufxtZVXo8P\n5/tcEDkD7J7R1VLltOezmcxawWAIjeS+Fj3HY34sGpQZ3sEQv7n9Pzg+q1Eydt/x\nQqKRx9ps2LaqulXS/9Uo+3EwUcxcvGxxGf0I4kxp9gsevMK1qjr9/8thYIDiTD1k\n3lRpmi5vupZMlDz4PmKi9qSM4kj4vKb333GYf9exNaEL3CAmja8butpbPXNPeOlE\nvqWqDt8Cg3g8jAzW/qHyNlg+afiA/+dMTCgCom/K5otNLFwN57zyLupMm3GSTnKC\n66z3CAawIMLQTk4UkNZO/d8t6jAvfHH2ICmSDqquFEA1DlZ7XeUVVm9lM+dBzP7W\ndD1lYsDSJnLn4zKKPnWLg0CPx2pKMLyHjjxUc6zKJw==\n-----END CERTIFICATE-----\n",
    "key": "-----BEGIN PRIVATE KEY-----\nMIIEwAIBADANBgkqhkiG9w0BAQEFAASCBKowggSmAgEAAoIBAQDoyIIWKvuIDUik\naZh6E4LSmRxb5LT3t90LAJzIISBe1Jf0QulI3gcwm77bQqGZWf3vq58w+I+dTZFy\njQhPZycd16Hqemphmzq7ijliQ5gT/rhH80hgIzXmfEwv8dNnFRVUxciCcOu3M+Q/\noudWTXHmNXqeq+w87SKjOgF+rYpSQ/3TyAedBkQcyIsfVG9HjhNhuCgLAoONuhwF\nz1B2rFWtTw9k2J5vIAjqQpQ5Cl1/pZUiSp1PZJBB45bpiS5PqjGGdhioSSIwqzLR\nh/tJ9e18E752npBbh7C9uiaqGfDHOPa8STf4v4Zx26samoQOmMYl1qlQFaGDa90D\nwRJwdCmVAgMBAAECggEBAMQhfImU+Y0uNBBi8BebLNSoMJ60Wk2FWvaUM4TjdFSy\nJr2lSs0cVU59SxeOUn3UtwIixeQK6WYOHwg3D9NnBCw+rKvVLKDEm327/pFuhkoC\nid4FeuuVfyqNe9vBku79cpWUd1aAMfqP/DYp2WR7qAXg9UmPbWIAIvkIPI4xRaP9\nDbK2SFOrGJOzWmpBNK6srTUuclaUOp+8kqAYZJwCYWkFWsyNm5elA1rB0M2jheZF\n2q4Y4lxWjGyPlPnal+PbYNT2O4ZlnA4BH8wHErYSDs5p/btBQUgbOtZX1PO72dk7\nD0cB0gkEl2YKYQzpYVUZNQsxAVTsIlL69rMkYEiAQFkCgYEA6ZaqzhcDEdhF1/2g\nMXCJBDtX8Z6ptmlcN3FW0JNdHHsVG8TjIeTp5JBY6N/EYgVi/6quA8hFEtV04z4E\nBeqOII+jqGmsz12rSRFZEnpuDKgZMl9spBs5bTPs8QEdu7zp+8/0WI6Os2KZ0U2i\n/N+D9Iv8n8I3mB8e6rVV27g+dscCgYEA/x4PqenqU6mzLMu7klbcR6y7zpY6NzCg\n5wP3Qij8i29ytV7rvZa8UT+7Rcg0xAeqFiiC7ChA5QcMdEvShKJUOcLH3aCfjrdO\nlv1ga5d51foq8rrIRXachvpdXFPoYoZ9HfHJsKjn6gPVsXNihTwIQ2rGm/4Xyc5j\ngfGR5C6y0MMCgYEAqRchA9jSpwtI2+bEHKXa+Y4/xi9VqS8xywynjIrwXxqWGCj5\nRmLgEU2QntrE3TQLCwoxt5k0r0KHv6v325SEV/vCu7nrl5y1zknZka/AlDbnLni3\nO0Bd3Lg27+sf6/P/6QILXkOr9x0MPeAWeTkP22mucLN17Q+yILMtuMTxqqcCgYEA\nnhtbScqWVtNNH+4DiWYbjrAWlKm12o5gqctjabVNDn07cfwpzY2lmBUPUugJC5RU\nbPcebI1l6oq7xTdYeKrB2CpHA6uQNzqTki/lmch+0YYBJ/1qMOKZj22KfrXhx23i\nDLTUco+7auSFgzwnSrsxw9Zg0DxhMcifEuFLsUbfu1ECgYEAs5yfx7v8GXyUzIHj\nEwFiR9B2h/cFBOHGpaaQSsSNlnYvvVk4Z4YcKNcUftoIHm8lP1CdbWVYOZEqSo3c\ntV8Qo10uz1bRf3eiCRBeQSXTcmcUv+AT2Yt2zWsXNmSrIrWvD5uGp04uaWWa8Loo\nIChJElEO+xbqsfL/ieaqSQJdy2I=\n-----END PRIVATE KEY-----\n"
  },
}

4.2.2 如果是Vue3脚手架创建的h5项目,在src目录创建ssl文件夹,将上面生成的证书文件复制到ssl文件夹中。

注意:fs模块和path模块的引入

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import path from 'path';
import fs from 'fs';
export default defineConfig({
  server: {
    open: true,
    https: {
      // 主要是下面两行的配置文件,不要忘记引入 fs 和 path 两个对象
      cert: fs.readFileSync(path.join(__dirname, 'src/ssl/cert.crt')),
      key: fs.readFileSync(path.join(__dirname, 'src/ssl/cert.key'))
    }
  }
})

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。