Vue实现网页端同时可扫描二维码和条形码功能
Vue实现网页端在手机上可调用摄像头扫描二维码、条形码功能主要包含移动端兼容问题、权限问题、摄像头生命周期管理的处理整体实现方案(关键技术选型):扫码库:html5-qrcode ,纯 Web 实现,不依赖原生 App,支持 QR + Barcode(大多数常见格式),兼容 Android / iOS Safari / WebView,比 instascan 更稳定安装npm install html5-qrcode移动端兼容关键点(非常重要),必须 HTTPS(或 localhost)否则:iOS Safari → 直接禁用摄像头,Android Chrome → 会弹权限失败必须“用户点击触发”@click="startQRScan" @click="startBarScan"不能自动调用摄像头,否则:iOS WKWebView 会直接拒绝 ,微信里会直接失败微信里 / App 内置 WebView 注意点,常见坑:微信内置浏览器:必须 HTTPS,有概率黑屏(需要延迟 render DOM),iOS WKWebView须用户手势触发,必须显式,stop() 释放摄像头摄像头权限流程(系统级),Android:首次调用:弹出 “允许摄像头权限” .iOS:必须 HTTPS + 用户触发,Safari 才稳定最大难点:移动端摄像头权限不是统一标准:iOS(Safari / WKWebView)限制最严格,iOS 的问题不是“能不能用”,而是“什么时候不给你