前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >uniapp页面截长图,并非手机自带截图

uniapp页面截长图,并非手机自带截图

原创
作者头像
英曼畅学
发布于 2023-04-17 17:04:36
发布于 2023-04-17 17:04:36
2.3K00
代码可运行
举报
运行总次数:0
代码可运行

手机截图只能获取当前页面可视区域的内容,如果我想将整个页面包括溢出屏幕的保存为图片。

今天的主角html2canvas组件,本文重点分享html2canvas组件的使用,和uniapp的renderjs使用方法。

renderjs官方文档教程https://uniapp.dcloud.net.cn/tutorial/renderjs.html

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<template>
	<view>
	   <!-- 先给定一个按钮触发页面导出图片的方法,renderScript是下面第二个script标签声明的属性 -->
       <view @click="renderScript.exportPhoto" class="export_btn">导出</view>
		<view class="page" id="poster">
			<!-- 图像信息 -->
			<view style="padding: 20upx 30upx;font-size: 32upx;font-weight: bold;">
				<text style="color: #5297FF;">图像</text>
				<text style="color: #0F1011;">信息</text>
			</view>
			<!-- 图像信息 -->
			<view style="padding: 20upx 30upx;font-size: 32upx;font-weight: bold;">
				<text style="color: #5297FF;">图像</text>
				<text style="color: #0F1011;">信息</text>
			</view>
             ......假设下面有很多内容,超出了屏幕    
		</view>
	</view>
</template>
<!-- 这个script是不能直接操作dom ,需要借助下面renderjs类型的script -->
<script>
    export default {
      methods:{
          //通过下面的方法将html转换为图片base64数据回调给此处
          receiveRenderData(data){
			base64ToPath(data, '.jpeg').then(function(imgPath){
                //保存到手机相册,你也可以做其他操作上传到自己服务端等
				uni.saveImageToPhotosAlbum({
					filePath: imgPath,
					success: function() {
						uni.showToast({
							title: '图片保存成功',
							icon: 'none'
						})
                        uni.hideLoading()
					}
				});
			});
		    },
          openLoading(){
            uni.showLoading({
				title:"加载中"
			})
          }
      }
    }
</script>
<!-- 不要忘记声明module属性,view中需要通过module声明的调用里面的方法  -->
<script module="renderScript" lang="renderjs">
//引入组件,没有安装的先去安装,怎么安装这里不用多说
import html2canvas from 'html2canvas';
export default {
    methods:{
		exportPhoto(e,ownerVm){
            //下面的代码可能会比较耗时,给个加载动画
			ownerVm.callMethod('openLoading')
			var dom = document.querySelector('#poster'); // 获取dom元素
			html2canvas(dom, {
				width: dom.clientWidth, //dom 原始宽度
				height: dom.clientHeight,
				scrollY: 0,
				scrollX: 0,
				useCORS: true, //支持跨域,但好像没什么用
			}).then((canvas) => {
				 // 将生产的canvas转为base64
				 var base64 = canvas.toDataURL('image/png')
                 // 将数据回调给第一个script
				 ownerVm.callMethod('receiveRenderData',base64)
			});
	    }
    }
}
</script>

欢迎访问本人个人简介中的网站地址,后面会持续分享移动端混合开发技术,大家也可以一起评论区交流

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Vue页面生成分享海报最详说明(含二维码+多种水印方式+常见的坑处理)
解决办法: 如果使用的是uni-app中的image标签 需要替换为 img标签,image标签在uni-app中其实是背景图片
我只会写Bug啊
2023/12/25
6180
【开发日记】Uniapp对指定DOM元素截长图
使用uniapp开发的APP,需要对页面中指定的DOM(指定区域)进行长截图,长截图就是手机屏幕不足以通过一个屏幕展现完整的内容,并将截图保存到手机相册中。
全栈开发日记
2025/02/10
870
【开发日记】Uniapp对指定DOM元素截长图
小程序生成普通二维码_注册一个小程序
参考了https://blog.csdn.net/lemontealin/article/details/104437584 这篇文章并做了修改,要想实现二维码的生成的话是需要引用相应插件的, 这个插件的作者是echo,echo写了整个Thor UI组件,我个人很佩服他,喜欢他的可以去Thor UI网站看看,学习一下。 1)首先下载你需要下载weapp-qrcode.js(百度网盘下载链接:链接:https://pan.baidu.com/s/1VXhq3ZjxmDcH1tFujKg75Q 提取码:vj2y) (2)在你的uni-app项目中需要的地方引入下载的weapp-qrcode.js文件。在标签中引入,如下
全栈程序员站长
2022/11/15
7290
小程序生成普通二维码_注册一个小程序
uni-app点击按钮,生成列表元素
在jQuery里面,动态生成div元素需要进行html的拼接,拼接完成再将拼接的内容放到指定的div里面去,在vue中一般编写代码时都不需要操作DOM元素,那么点击按钮的时候,怎么动态生成自己想要的列表元素?
王小婷
2020/11/30
1.4K0
uni-app弹窗多选样式分享
分享一个uniapp弹层多选样式 *弹层依赖uniapp-popup组件 html <uni-popup :show="show" type="bottom" :custom="true" :mask-click="false"> <view class="pop"> <view class="btns"> <view class="pop-button cancel" @click="cancel()">取消</view> <view class="pop-butt
薛定喵君
2020/03/26
2.2K2
uni-app弹窗多选样式分享
【uniapp】视频分享预览小程序
六一收到个不同以往的需求,我的指导老师最近有点忙,让我们帮忙做一个可以通过二维码预览视频的小程序
德宏大魔王
2023/08/08
3290
【uniapp】视频分享预览小程序
uni-app实战之社区交友APP(3)Vue.js和uni-app基础
本文主要介绍了uni-app和Vue的基础使用: 基础组件的使用,CSS选择器的类型,flex布局的常见用法; 数据渲染、条件渲染、列表渲染,class和style的动态绑定; 事件处理的绑定,属性的监听和计算属性。
cutercorley
2021/01/29
2.5K0
uniapp H5 画布自定义海报实现长按识别,分享,转发
前端使用uniapp制作H5自定义海报,本来以为挺简单的一常用功能画布,因为之前也在 H5 和小程序做过类似功能,所以直接上手干了,没想到还是遇到了一些坑,特此记录希望能够帮到大家。
IT工作者
2022/05/16
3.8K0
『UniApp』核心语法
下载地址:https://www.dcloud.io/hbuilderx.html
程序员 NEO
2023/12/26
4742
『UniApp』核心语法
uni-app渲染新闻列表,跳转详情页
3:开始写list界面代码,主要讲json数据渲染在前端列表,前面有说过,很简单的,然后在通过goDetail的方法带参跳转到详情页。
王小婷
2020/02/11
2.7K0
uni-app渲染新闻列表,跳转详情页
【Uni-App社区小程序】011-flex布局
参考教程(阮一峰的flex教程):http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
訾博ZiBo
2025/01/06
1200
【Uni-App社区小程序】011-flex布局
web实时长图实践
本文将介绍几种浏览器端和服务器端 web 实时生成图片的方案,欲知详情请看文章详情。
QQ音乐技术团队
2018/03/01
6.8K1
web实时长图实践
【Uni-App社区小程序】010-uni-app的css3选择器
https://uniapp.dcloud.net.cn/frame?id=%e9%80%89%e6%8b%a9%e5%99%a8
訾博ZiBo
2025/01/06
820
【Uni-App社区小程序】010-uni-app的css3选择器
4.页面绘制-脚本页面和个人中心页面
加入输入框按钮和承载生成小说文本的input框,同时加入一些Gap间隔槽,提升结构美观,构成了脚本页面jiaoben.vue:
玩蛇的胖纸
2021/06/29
9760
css特殊操作和效果
(8) 渐变 background-image: repeating-linear-gradient(red, yellow 10%, green 20%);
前端小tips
2021/12/07
4180
css特殊操作和效果
带你领略 html2canvas
如果你希望排除某些元素被渲染,你可以添加data-html2canvas-ignore属性到这些元素,html2canvas将从渲染中排除它们。
公众号---人生代码
2020/11/19
1.8K0
带你领略 html2canvas
uni-app实图片和视频上传
使用uni-app实现点击上传,既可以上传视频,有可以上传图片,图片预览,删除图片和视频功能,最终效果如下。uni-app里面没有提供同时上传视频和图片这个插件,只能靠自己手写,
小周sir
2019/10/21
7.6K0
初学uniapp上手项目
学习一门新的技术,不仅仅是要了解学习该技术的基本知识,更要学会进阶学习,探究其中的价值。掌握一门技术,俗话讲的好,“千学不如一看,千看不如一练”,为此,在掌握一些基本知识之后,上手练习才是熟悉掌握技术的要点。
腿子代码了
2023/10/08
3000
初学uniapp上手项目
uniapp图片弹框效果
需求:点击提交按钮,提交成功后会弹出一个弹框,提示成功,点击右上角的叉号或者我知道了,隐藏弹框效果。
王小婷
2020/02/18
5.9K1
uniapp图片弹框效果
uniapp使用echarts在H5上显示报错问题的解决方法
在做uniapp vue3开发的echarts图表的时候,发现在浏览器上面正常运行,但在微信开发者工具上显示报错了,报错如下
炑焽
2024/08/11
3250
相关推荐
Vue页面生成分享海报最详说明(含二维码+多种水印方式+常见的坑处理)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文