vue项目使用html5+ barcode扫码在苹果遇到的问题以及自己的解决方法
- 之前在记录扫码 在安卓时,会出现黑屏,错位,闪退等等问题。解决方法在另一篇文章里 https://www.cnblogs.com/huzhuhua/p/11064764.html 。
当时以为 是解决了。后来打包到IOS上时也是 出现。原因是
- let ws = plus.webview.create("./camera.html", "camera");
- ws.show();
- ws.addEventListener(
- "loaded",
- function() {
- //页面加载完成后才显示
- setTimeout(function() {
- ws.show();
- }, );
- },
- false
- );
- ws.addEventListener(
- "close",
- function() {
- ws = null;
- },
- false
- );
camera.html页面上
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>camera</title>
- <style>
- html,
- body,
- div,
- span,
- img {
- margin: ;
- padding: ;
- }
- body {
- background: #;
- }
- .tips {
- margin-top: %;
- color: #fff;
- text-align: center
- }
- .action {
- position: fixed;
- z-index: ;
- width: %;
- left: ;
- bottom: ;
- }
- .action .items {
- display: flex;
- justify-content: space-around;
- background: rgba(, , , 0.35);
- width: %;
- padding: 4px;
- margin: 4px auto;
- }
- .action .items .item {
- flex-basis: 50px;
- text-align: center;
- }
- .action .items img {
- width: 27px;
- }
- </style>
- </head>
- <body>
- <div id="camera">
- <div id="scan"></div>
- <div class="tips">加载中...</div>
- <div class="action">
- <div class="items">
- <div class="item" onclick="openLight"><img src="./src/assets/img/png-60@3x.png"></div>
- <div class="item" onclick="getPicture"><img src="./src/assets/img/png-59@3x.png"></div>
- <!-- <div
- class="item"
- @click="showInput"
- ><img src="../assets/img/png-68@3x.png">
- </div> -->
- <div class="item" onclick="cancelScan"><img src="./src/assets/img/png-61@3x.png"></div>
- <!-- <d class="item"><img src="../../assets/img/png-25@3x.png"></d -->
- </div>
- </div>
- </div>
- </body>
- <script>
- var isLight = false, scan = null;
- // 打开闪光灯
- function openLight() {
- isLight = !isLight;
- scan.setFlash(isLight);
- }
- //创建扫描控件
- function startRecognize() {
- if (!window.plus) return;
- scan = null;
- scan = new plus.barcode.Barcode(
- "scan",
- [plus.barcode.QR, plus.barcode.EAN8, plus.barcode.EAN13],
- {
- frameColor: "#1294cb",
- scanbarColor: "#1294cb",
- top: "100px",
- left: "0px",
- width: "100%",
- height: "500px",
- position: "fixed"
- }
- );
- // 条码识别成功
- scan.onmarked = onmarked;
- function onmarked(type, result, file) {
- result = result.replace(/\n/g, "");
- localStorage.setItem("cameraData", result);
- let ws = plus.webview.getWebviewById("camera");
- ws.close()
- }
- }
- // //开始扫描
- function startScan() {
- if (!window.plus) return;
- startRecognize(); //创建控件
- setTimeout(() => {
- scan.start();
- }, );
- }
- // 取消扫描
- function cancelScan() {
- if (!window.plus) return;
- plus.navigator.setStatusBarStyle("dark");
- if (scan) {
- scan.cancel(); //关闭扫描
- scan.close(); //关闭条码识别控件
- }
- let ws = plus.webview.getWebviewById("camera");
- ws.close()
- }
- // 从相册选取二维码相片
- function getPicture() {
- plus.gallery.pick(src => {
- // scan.cancel(); //关闭扫描
- plus.barcode.scan(
- src,
- (type, result) => {
- scan.cancel(); //关闭扫描
- scan.close();
- localStorage.setItem("cameraData", result);
- plus.navigator.setStatusBarStyle("dark");
- let ws = plus.webview.getWebviewById("camera");
- ws.close()
- }
- );
- });
- }
- window.onload = function () {
- setTimeout(() => {
- plus.navigator.setStatusBarStyle("dark");
- startScan()
- }, );
- }
- </script>
- </html>
这样算解决了。折腾了N久
vue项目使用html5+ barcode扫码在苹果遇到的问题以及自己的解决方法的更多相关文章
- 关于Android Studio3.2新建项目无法运行出现Failed to find Build Tools revision 28.0.3的解决方法
关于Android Studio3.2新建项目无法运行出现Failed to find Build Tools revision 28.0.3的解决方法 https://blog.csdn.net/h ...
- PC、h5项目接入第三方支付宝扫码登录、扫码付款
首先介绍一下pc项目接入支付宝扫码支付. 1.pc.移动接入支付宝扫码支付. 其实这个逻辑很简单,前端所需要处理的不是很多,后台会给一个连接,前端只需要将要支付的订单id拼接在这个连接上,然后打开跳转 ...
- 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-6.微信扫码登录回调本地域名映射工具Ngrock
笔记 6.微信扫码登录回调本地域名映射工具Ngrock 简介:讲解微信扫码回调本地域名ngrock讲解 1.为什么要用这个,微信扫码需要配置回调,需要配置对应的域名 ...
- 微信支付之扫码支付开发:我遇到的坑及解决办法(附:Ecshop 微信支付插件)
前段时间帮一个朋友的基于ecshop开发的商城加入微信扫描支付功能,本以为是很简单的事儿——下载官方sdk或开发帮助文档,按着里面的做就ok了,谁知折腾了两三天的时间才算搞定,中间也带着疑问在网上找了 ...
- 在android源码环境下写上层应用的一个初步解决方法
在android源码环境下编写上层应用,一直以来我都觉得很麻烦.因为如果单纯将应用导入eclipse,那么framework层一些定制的API无法自动提示和补全,使用起来不太方便:如果将整个andro ...
- 项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved 解决方法
Error: The import javax.servlet cannot be resolved The import javax.servlet.http.HttpServletRequest ...
- QT项目升级(QT4.6.3到QT5.2)时,遇到的问题和解决方法
QT4升级到QT5修改: PC部分: [改QTDIR变量] 在project根文件夹下找到.user文件, 如InnoTabPlugin.vcxproj.user 改动指向你的QT5根文件夹: < ...
- (转)新建maven项目时报错Error:Maven Resources Compiler: Maven project configuration required for module 'XX'解决方法
转载地址:https://blog.csdn.net/qq784515681/article/details/85070195 在新建maven项目时,Problems中报错: Error:Maven ...
- vue项目条形码和二维码生成工具试用
项目开发需要,优惠券分不同类型,简单的使用id生成条形码供店铺使用,麻烦点的需要多个字段的就需要使用二维码来展示了,对应的效果如下 条形码(一维码)使用工具code128 需引入code128.js ...
随机推荐
- shell脚本如何判断文件大小
转自:https://blog.csdn.net/lovegengxin/article/details/80762329 1 .ls -lls -l $filename | awk '{print ...
- 重新学习Spring注解——servlet3.0
53.servlet3.0-简介&测试 54.servlet3.0-ServletContainerInitializer 55.servlet3.0-ServletContext注册三大组件 ...
- 洛谷 CF997A Convert to Ones
洛谷 CF997A Convert to Ones 洛谷传送门 题意翻译 给你一个长度为 nn 的01串( n \leq 310^5n*≤3∗105 ),你有两种操作: 1.将一个子串翻转,花费 XX ...
- 小学四则运算口算练习app---No.2
经过昨天的了解,虽然还是很懵,总要下手摸到鼠标来写第一个页面! 这是一开始设置出体数目和时间的页面,使用者根据提示进行相关设置即可! 代码如下: <?xml version="1.0& ...
- webpack的一些坑
最近自己着手做一个小的Demo需要webpack,目前版本号是4.41.2,想使用的版本是3.6.0,因3x版本和4x版本很多地方不同,所以在安装过程中也是很多坎坷,下面是遇到的一些坑,和一些解决办法 ...
- MySQL5.7调优参数
1. 更改MySQL Data File位置 datadir=/data/mysqlsocket=/data/mysql/mysql.sock 2. 调整OS参数 * soft nproc 10240 ...
- LeetCode 717. 1比特与2比特字符(1-bit and 2-bit Characters)
717. 1比特与2比特字符 LeetCode717. 1-bit and 2-bit Characters 题目描述 有两种特殊字符.第一种字符可以用一比特0来表示.第二种字符可以用两比特(10 或 ...
- golang微服务框架go-micro 入门笔记2.4 go-micro service解读
本章节阐述go-micro 服务发现原理 go-micro架构 下图来自go-micro官方 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go- ...
- Scala 函数式编程
将函数赋值给变量 // Scala中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量 // Scala的语法规定,将函数赋值给变量时,必须在函数后面加上空格和下划线 def ...
- Java学习:JDBC快速入门
本节类容 JDBC基本概念 快速入门 JDBC基本概念 概念: Java DataBase Connectivity Java 数据库连接,Java语言操作数据库 JDBC本质: 其实是官方(sun公 ...