您的位置:首页 > 健康 > 养生 > 营销培训体系_老闵行是指哪里_线下推广方案_旺道seo软件技术

营销培训体系_老闵行是指哪里_线下推广方案_旺道seo软件技术

2025/2/23 1:32:35 来源:https://blog.csdn.net/Stand_Fast/article/details/145515423  浏览:    关键词:营销培训体系_老闵行是指哪里_线下推广方案_旺道seo软件技术
营销培训体系_老闵行是指哪里_线下推广方案_旺道seo软件技术

1、背景

使用uniapp开发的APP,需要对页面中指定的DOM(指定区域)进行长截图,长截图就是手机屏幕不足以通过一个屏幕展现完整的内容,并将截图保存到手机相册中。

2、完整实现

安装依赖

安装插件:https://ext.dcloud.net.cn/plugin?id=15050

点击以上的链接中的下载插件并导入HBuildeX按钮,将插件导入到项目中。

在项目中安装html2canvas的node包:

npm install html2canvas

页面核心代码

在页面中引入组件:

<!-- 需要截图的DOM区域 -->
<view id="render-dom" class="content-box"><!-- 你的页面内容 -->
</view><sp-html2canvas-render :useCORS="true" :allowTaint="true" domId="render-dom" ref="renderRef" @renderOver="renderOver"></sp-html2canvas-render>

domId:指定截长图的DOM元素。

@renderOver:指定组件的emit事件,当完成截图使执行的回调函数。

renderOver回调函数:

import {base64ToPath} from "../../../uni_modules/sp-html2canvas-render/utils";/*** 截图完成* @param e 图片的base64格式*/
function renderOver(e) {base64ToPath(e).then(res => { // res是本地临时路径saveMediaToPhoto("image", res).then(() => {// TODO 保存成功的提示,或其他操作})})
}

可能存在的问题

如果DOM元素中包含网络图片,并且图片不支持跨域,则会报以下错误:

toDataURL on HTMLCanvasElement

需要将DOM元素中的网络图片转为Base64格式。

将本地或网络图片转为Base64格式推荐使用组件内置的方法:

import { urlToBase64,pathToBase64 } from "@/uni_modules/sp-html2canvas-render/utils/index.js";

示例:

/*** 将图片转成base64* @param url 路径* @param local 是否本地*/
function imgUrlToBase64(url,local = false) {if (!props.base64 || getMediaType(props.fileName) == "video") {previewUrl.value = url;return;}if(local){pathToBase64(url).then(res => {previewUrl.value = res;});}else{urlToBase64(url).then(res => {previewUrl.value = res;});}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com