uniapp 截屏扫码
最近开发功能遇到个需求,用户点击某个操作之后,需要截取当前屏幕内容,并扫码识别屏幕截图中的二维码,代码如下:
首先将代码抽离到外部文件中,以便复用:
// 截图
export function takeScreenshot() {
return new Promise(resolve => {
var pages = getCurrentPages() //获取当前页面信息
var page = pages[pages.length - 1]
var bitmap = null
var currentWebview = page.$getAppWebview()
bitmap = new plus.nativeObj.Bitmap('amway_img')
// 将webview内容绘制到Bitmap对象中
currentWebview.draw(bitmap, function() {
// console.log('截屏绘制图片成功');
let rand = Math.floor(Math.random() * 10000)
let saveUrl = '_doc/' + rand + 'a.jpg'
// resolve(saveUrl)
bitmap.save(saveUrl, {}, function(i) {
resolve(i.target)
}, function(e) {
resolve(false)
console.log('保存图片失败:' + JSON.stringify(e))
})
}, function(e) {
resolve(false)
console.log('截屏绘制图片失败:' + JSON.stringify(e))
})
})
} // 扫描本地二维码
export function scanLocalImgCode(url) {
return new Promise(resolve => {
uni.getImageInfo({
src: url,
success: function(image) {
plus.barcode.scan(image.path, function(type, result) {
resolve(result)
console.log('扫描成功:(' + type + ')' + result)
}, function(e) {
resolve(false)
console.log('扫描失败: ' + JSON.stringify(e))
})
}
})
})
}
页面中使用
// 扫码
async handleScan() {
const imgPath = await takeScreenshot()
if (imgPath) {
const codeContent = await scanLocalImgCode(imgPath)
if (codeContent) {
console.log(codeContent);
} else {
this.$toast('扫码失败,请确保二维码在屏幕中完整显示哦', 2000)
}
}
},
uniapp 截屏扫码的更多相关文章
- UNIAPP实现PDA扫码
目前我接触到了两种方法,以扫码pda安卓采集器(可以直接理解为手机上有个激光扫码)的设置划分. 1.扫描设置 --> 键盘方式输出(键盘类型:物理键盘),注意设置要看具体的型号: 2.扫码设置 ...
- Android使用C++截屏并显示
使用android底层自带的截屏源码进行修改后,将截取屏幕的内容再次显示在屏幕上,使屏幕呈现出暂停的效果. android自带的截屏代码在android\JB\frameworks\base\cmds ...
- uni-app 自定义扫码界面
二维码扫描,已经成为当下一款应用不可或缺,同时也是用户习以为常的功能了.uni-app 为我们提供了扫码 API ,直接调用即可. 需求场景 在实际开发中,平台提供的默认扫码界面,并不能满足一些自定义 ...
- FFmpeg 转码和截屏
转码 (flv转码为MP4,libx264是MP4编码格式 , -b 3000k是码率,比特率) ffmpeg -i /home/ghr/mp4/mp4.flv -vcodec libx264 -b ...
- [转] - 使用Qt作窗口截屏(含源码)
截屏(screenshot),就是将屏幕上的东西拷贝下来存成图片文件.介绍的好像有点多余:(,那我们就直接切入正题. QPixmap提供了两个函数grabWidget和grabWindow可以将屏幕上 ...
- android后台截屏实现(2)--screencap源码修改
首先找到screencap类在Android源码中的位置,/442/frameworks/base/cmds/screencap/screencap.cpp 源码如下: /* * Copyright ...
- iOS Swift WisdomScanKit二维码扫码SDK,自定义全屏拍照SDK,系统相册图片浏览,编辑SDK
iOS Swift WisdomScanKit 是一款强大的集二维码扫码,自定义全屏拍照,系统相册图片编辑多选和系统相册图片浏览功能于一身的 Framework SDK [1]前言: 今天给大家 ...
- android指纹识别、拼图游戏、仿MIUI长截屏、bilibili最美创意等源码
Android精选源码 一个动画效果的播放控件,播放,暂停,停止之间的动画 用 RxJava 实现 Android 指纹识别代码 Android仿滴滴打车(滴滴UI)源码 Android高仿哔哩哔哩动 ...
- uni-app自定义app端的扫码界面
记得当时是在西班牙有这样的一个需求,需要自定义扫码页面,还需要加上西班牙文,当时是在一个组件里面找到了这样的一个方法,全文大部分使用的app端的Native里面的方法,记录一下,跑路了项目代码要删库了 ...
- 微信小程序实现连续扫码功能(uniapp)
注:本文使用的是 uniapp 语法. 微信小程序提供了扫码API:wx.scanCode,但它只能扫一次码,想要实现连续扫码,需要借用 camera 组件.camera 组件不仅能拍照,还具有扫码功 ...
随机推荐
- Qt开源作品19-通用数据库翻页查询
一.前言 在Qt与数据库结合编程的过程中,记录一多,基本上都需要用到翻页查看记录,翻页有个好处就是可以减轻显示数据的表格的压力,不需要一次性将数据库表的记录全部显示,也基本上没有谁在一页上需要一次性显 ...
- Eclipse生成javadoc方法与错误解决
1.Eclipse生成javadoc方法与错误解决 2.Eclipse自动生成文件注释以及使用javadoc命令自动生成API文档 3.maven配置生成java doc文档中文乱码问题解决方案 4. ...
- WxPython跨平台开发框架之模块字段权限的管理
在我的很多Winform开发项目中,统一采用了权限管理模块来进行各种权限的控制,包括常规的功能权限(工具栏.按钮.菜单权限),另外还可以进行字段级别的字段权限控制,字段权限是我们在一些对权限要求比较严 ...
- [rustGUI][iced]基于rust的GUI库iced(0.13)的部件学习(00):iced简单窗口的实现以及在窗口显示中文
前言 本文是关于iced库的部件介绍,iced库是基于rust的GUI库,作者自述是受Elm启发. iced目前的版本是0.13.1,相较于此前的0.12版本,有较大改动. 本合集是基于新版本的关于分 ...
- 【解决问题记录】https网站中请求http资源接口报错与netERRSSLPROTOCOLERROR错误的解决
在线上的CRM网站中,对接OBS做了一个专门的公共服务,公共服务使用的http协议,在页面中调用接口时出现错误:The page at 'xxx' was loaded over HTTPS, but ...
- Final Review - 返回天空的雨滴
目录 Motivations Tricks Conclusions Algorithms And - \[\text{Each moment, now night.} \newcommand{\vct ...
- biancheng-JSTL标签库
JSP 标签是一组与 HTML 标签相似,但又比 HTML 标签强大的功能标签.JSTL 用来简化 JSP 开发,可以使我们不用嵌入 Java 代码就能够开发出复杂的 JSP 页面.JSTL 包含 5 ...
- 【YashanDB知识库】导入数据时报错:YAS-00008 type convert error:literal does not match format string
本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7901522.html?templateId=1718516 现象 将数据通过SQ ...
- 第一个shell脚本(bash脚本)
首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.运维工作中把常用的一系列的操作都记录到一个文档中,然后去 ...
- 记录在本地电脑部署自己的DeepSeek 大模型AI
大家新年好呀,年初二给各位拜年啦,祝各位新年身体健康,工作顺利,万事如意,开心快乐每一天! 前言: 这几天看到很多DeepSeek的热点新闻(火的不行呀),去了解下这个AI,然后自己试了下本地部署,发 ...