小程序-页面生成为图片,点击保存和分享
前言
在实际项目中,我们可能会遇到类似的场景——点击后生成一张banner,该banner是图片类型,格式不限,用户在该页面单击之后会生成一个有遮罩的预览,长按之后有保存和分享等操作。
一、海报制作
这里我们需要使用canvas来制作banner海报,这里推荐使用HB插件市场里的海报画板插件,链接我放下面了
海报的写法和正常的HTML的书写方法异曲同工,详情可以查看文档,文档中也给了一个案例,可以用来快速测试上述功能。
海报画板https://ext.dcloud.net.cn/plugin?id=2389
我们完成海报的书写后,注意,在根标签中,也就是
<l-painter isCanvasToTempFilePath path-type="url" @success="success">
// 这里是你书写的海报样式代码
</l-painter>
isCanvasToTempFilePath // 主动生成图片
path-type // 你生成图片路径的类型 url/base64
@success // 图片生成成功的回调函数,这里可以进行一些操作
原文档中也有对该组件的描述,如下图:
二、功能完善
完成上述操作后,我们需要一个点击事件来调用微信小程序自带的预览图片的API,也就是如下效果:
下面附上实现该功能的代码:
// 点击预览
click() {
wx.previewImage({
current: this.path, // 当前显示图片的http链接
urls: [this.path] // 需要预览的图片http链接列表
})
},
注意:wx.previewImage中的urls是一个数组,这里的写法需要小心一点,避免出错
或者使用另外一个API,也可以实现分享和保存的功能
// 打开分享图片弹窗,可以将图片发送给朋友、收藏或下载
wx.showShareImageMenu({
path: this.path,
})
path // 要分享的图片路径
两者差别, 我个人觉得并不是很大,具体还是以项目需求为准,因为有的甲方就是要求用这样的方式更好,那你也没有办法。
该功能并不是很难,只要花点时间查看文档就能找到解决办法。如果上述的愚见对你也有所帮助的话,不妨点点赞,点点关注,支持一下博主吧!
CSDN-Ada助手: Vue入门 技能树或许可以帮到你:https://edu.csdn.net/skill/vue?utm_source=AI_act_vue
CSDN-Ada助手: 恭喜作者第20篇博客的发布!看到你分享了“超简单的vue-devtools插件安装教程”,让我受益匪浅。希望你可以继续保持创作的热情,分享更多有用的内容给大家。下一步,可以考虑深入研究某个具体功能或者案例,或者分享一些实战经验,这样会更加丰富和有趣。期待你的下一篇作品!
伏案听雨眠: 右边的数据{ "code": 100, "msg": "ok", "result": { "total": 32, "data": [{ "id": 1, "name": "助手名称1", "subname": "使用说明", "logo": "助手logo", "desc": "助手简介", "cateId": 1, "sort": 1, "cateName": "分类1", "updateTime": "2022-11-11 11:11:11", "updateBy": 222 }] } } 左边的数据{ "code": 100, "msg": "ok", "result": { "total": 32, "data": [{ "id": 1, "name": "分类名1", "icon": "https://s6.ui.cn/img/yearlogo.png", "sort": 3, "updateTime": "2023-06-06 12:32:12", "updateBy": 10000 }] } }
淡淡蛋痛: 你好,可以给一下那几个数据的数据结构吗。
CSDN-Ada助手: 恭喜您写了第14篇博客!标题《微信小程序带参扫码跳转以及测试方法》让我充满期待地点击了进去。阅读了您的博客后,我对微信小程序的带参扫码跳转有了更深入的理解,非常感谢您的分享。 您的博客内容非常实用,对于像我这样对小程序开发有兴趣的人来说,真是极有帮助。不过,如果可能的话,我希望您能够在下一篇博客中更详细地介绍一下如何在小程序中进行测试,包括一些常见的测试方法和技巧。我相信这样的话题会吸引到更多的读者,也会给我们提供更多的学习参考。 再次恭喜您的持续创作,并期待您在下一篇博客中的精彩文章!谢谢您的分享!