位置: IT常识 - 正文

uniapp 实现生成海报并分享给微信好友和保存到本地相册(uniapp生成h5)

编辑:rootadmin
uniapp 实现生成海报并分享给微信好友和保存到本地相册 记录uniapp 生成二维码海报并保存到本地或者分享给微信好友

推荐整理分享uniapp 实现生成海报并分享给微信好友和保存到本地相册(uniapp生成h5),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp怎么创建项目,uniapp实现生成海报背景图切换代码,uniapp生成微信小程序,uniapp生成apk,uniapp代码生成器,uniapp代码生成,uniapp代码生成,uniapp代码生成,内容如对您有帮助,希望把文章链接给更多的朋友!

文章目录记录uniapp 生成二维码海报并保存到本地或者分享给微信好友前言一、引入生成二维码的组件二、点击右侧的分享图标生成海报三:将canvas 图片转化成图片(最关键)四:保存图片或者发送好友最后前言

最近又遇到一个需求:用户需要将小程序生成的二维码海报分享给微信好友或者保存到本地,最后实现的效果如下:

一、引入生成二维码的组件uniapp 实现生成海报并分享给微信好友和保存到本地相册(uniapp生成h5)

这种网上随便找一下就有了,楼主采用的是tki-qrcode 生成二维码组件,具体的链接如下: 链接: https://blog.csdn.net/qq_45829293/article/details/123169952

二、点击右侧的分享图标生成海报

因为考虑到到时候生成的海报要分享,所以考虑用canvas的方式去绘制海报,当然你也可以试着用传统的 写法去生成,这边楼主没有去尝试过,所以这个方法也就不说了,只说canvas 的方式

核心生成代码如下(示例):

//初始化画布async __init() {uni.showLoading({title: '加载中...',mask: true})this.ctx = uni.createCanvasContext('my-canvas', this)this.canvasW = uni.upx2px(500);this.canvasH = uni.upx2px(750);//设置画布背景透明this.ctx.setFillStyle('rgba(255, 255, 255, 0)')//设置画布大小this.ctx.fillRect(0, 0, this.canvasW, this.canvasH)//绘制圆角背景this.drawRoundRect(this.ctx, 0, 0, this.canvasW, this.canvasH, uni.upx2px(18), '#FFFFFF')//小程序码// let qrcodeImg = await this.getImageInfo(this.qrcode)// this.ctx.drawImage(qrcodeImg.path,198,(((this.canvasW-hW) / 2) + hH + 135), 92, 92)//获取二维码的图片let headerImg = await this.getImageInfo(this.src)let hW = uni.upx2px(500);let hW1 = uni.upx2px(300);let hH = uni.upx2px(300);//绘制标题图 this.drawRoundImg(this.ctx, headerImg.path, uni.upx2px(100), hH / 4, hW1, hH, 8)//绘制提示this.ctx.setFontSize(14);this.ctx.textAlign = 'center' //文字居中 设置文字居中但是fillText的第二个参数必须为画布宽度一半this.ctx.setFillStyle('#A4A4A4');let sWidth = this.ctx.measureText(this.subTitle).widththis.ctx.fillText(this.subTitle, this.canvasW / 2, (((this.canvasW - hW) / 2) + hH + 70))this.ctx.setFontSize(12);this.ctx.fillText(this.subTitle1, this.canvasW / 2, (((this.canvasW - hW) / 2) + hH + 90))//绘制虚线this.drawDashLine(this.ctx, 10, (((this.canvasW - hW) / 2) + hH + 120), (this.canvasW - 10), (((this.canvasW - hW) / 2) + hH + 120), 5)//左边实心圆this.drawEmptyRound(this.ctx, 0, (((this.canvasW - hW) / 2) + hH + 120), 10)//右边实心圆this.drawEmptyRound(this.ctx, this.canvasW, (((this.canvasW - hW) / 2) + hH + 120), 10)//提示文案this.ctx.setFontSize(12);this.ctx.setFillStyle('#858585');//底部广告let BottomAdImg = await this.getImageInfo(this.abImg)// 判断一下手机系统的宽高uni.getSystemInfo({success: (res) => {if (res.windowHeight <= 568) {this.ctx.drawImage(BottomAdImg.path, uni.upx2px(20), (((this.canvasW - hW) /2) + hH + 140), uni.upx2px(460), (this.canvasH - hH) / 4)} else {this.ctx.drawImage(BottomAdImg.path, uni.upx2px(20), (((this.canvasW - hW) /2) + hH + 140), uni.upx2px(460), (this.canvasH - hH) / 3)}}});三:将canvas 图片转化成图片(最关键)

这一步是最关键的,只有这一步完成了,才能够实现分享给用户或者保存下来

代码如下:

this.ctx.draw(true, () => {// 将canvas 变成图片方便发送给好友或者保存var that = thisuni.canvasToTempFilePath({canvasId: 'my-canvas',fileType: 'jpg',x: 0,y: 0,complete: (res) => {this.canvasImg = res.tempFilePath}}, this);})四:保存图片或者发送好友

这里采用了微信原生的方式,在img 标签上加上 show-menu-by-longpress=true 就可以了。

最后如需项目demo,请联系我:1015095073@qq.com
本文链接地址:https://www.jiuchutong.com/zhishi/284090.html 转载请保留说明!

上一篇:ehSched.exe是什么进程 ehSched进程查询(ecap.exe是什么意思)

下一篇:【vue2可视化开发】新手会遇到的问题——大屏自适应(vue可视化面板怎么打开)

  • 网易云音乐评论怎么抱抱别人(网易云音乐评论怎么删除)

    网易云音乐评论怎么抱抱别人(网易云音乐评论怎么删除)

  • word加着重号(word加着重号图案样式)

    word加着重号(word加着重号图案样式)

  • 电脑屏幕怎么录制(电脑屏幕怎么录制视频教程)

    电脑屏幕怎么录制(电脑屏幕怎么录制视频教程)

  • 华为matex啥时候上市

    华为matex啥时候上市

  • 小米的息屏显示在哪里(小米开启息屏显示)

    小米的息屏显示在哪里(小米开启息屏显示)

  • qq名片点赞怎么撤回(qq名片点赞怎么点40多个)

    qq名片点赞怎么撤回(qq名片点赞怎么点40多个)

  • 陌陌极速版签到多少可以提现(陌陌极速版签到在哪里签)

    陌陌极速版签到多少可以提现(陌陌极速版签到在哪里签)

  • 苹果耳机掉了一个是否可以配回来(苹果耳机掉了一只补一只怎么配对)

    苹果耳机掉了一个是否可以配回来(苹果耳机掉了一只补一只怎么配对)

  • 6s有3dtouch功能吗(苹果6s的3dtouch在哪里设置)

    6s有3dtouch功能吗(苹果6s的3dtouch在哪里设置)

  • 笔记本黑屏怎么强制关机重启(笔记本黑屏怎么解决)

    笔记本黑屏怎么强制关机重启(笔记本黑屏怎么解决)

  • 苹果11是高通的么

    苹果11是高通的么

  • 有赞付款了怎么不显示订单(有赞交易成功怎么退款)

    有赞付款了怎么不显示订单(有赞交易成功怎么退款)

  • vivos5售价与上市时间(vivo s5上市)

    vivos5售价与上市时间(vivo s5上市)

  • 苹果手机三包是哪三包(苹果手机 三包)

    苹果手机三包是哪三包(苹果手机 三包)

  • macbook屏幕怎么擦拭(macbook屏幕怎么缩小)

    macbook屏幕怎么擦拭(macbook屏幕怎么缩小)

  • 苹果11自带美颜吗(苹果11自带美颜相机吗)

    苹果11自带美颜吗(苹果11自带美颜相机吗)

  • 手机不用了怎么处理(手机不用了怎么清理数据)

    手机不用了怎么处理(手机不用了怎么清理数据)

  • 微信群消息免打扰没有用(微信群消息免打扰)

    微信群消息免打扰没有用(微信群消息免打扰)

  • 淘宝授权在哪里看(淘宝的授权在哪)

    淘宝授权在哪里看(淘宝的授权在哪)

  • 手机百度网盘如何提速(手机百度网盘如何下载链接文件)

    手机百度网盘如何提速(手机百度网盘如何下载链接文件)

  • 手机不停弹广告广告怎么办(手机不停弹广告出来怎么办)

    手机不停弹广告广告怎么办(手机不停弹广告出来怎么办)

  • 小米手环4nfc上市时间(玩转小米手环4nfc)

    小米手环4nfc上市时间(玩转小米手环4nfc)

  • 华为p30pro是瀑布屏吗(p30pro是水滴屏吗)

    华为p30pro是瀑布屏吗(p30pro是水滴屏吗)

  • 监控录像能调出几天的(监控录像里的摄像头可以调吗)

    监控录像能调出几天的(监控录像里的摄像头可以调吗)

  • 手机怎么看好友多少天(手机怎么看好友steam直播)

    手机怎么看好友多少天(手机怎么看好友steam直播)

  • cad快速选择快捷键(cad快速选择快捷键qse)

    cad快速选择快捷键(cad快速选择快捷键qse)

  • 手机服务密码忘了怎么办(手机服务密码忘了怎么重置)

    手机服务密码忘了怎么办(手机服务密码忘了怎么重置)

  • 加工企业税收优惠政策
  • 车辆购置税征收管理
  • 公允价值变动损益属于什么科目
  • 股票权类型
  • 应交土地使用税和应交城镇土地使用税一样吗
  • 国际重复征税解决方法有
  • 房产税的税收优惠政策
  • 建筑业增值税税率2022
  • 为什么要计提递延所得税
  • 开票地址太长显示不全
  • 增值税专用发票有效期是多长时间
  • 汇算清缴企业所得税退税账务处理
  • 出口专用发票应在哪里开
  • 银行付款的会计怎么做账
  • 库存方面的会计是做什么的
  • 社会团体收费项目有哪些
  • 公司注销时发现很多年前多发了员工的工资
  • 企业注销合适还是转让出去合适
  • 领用外购材料用于动产
  • 借差旅费退回现金怎么办
  • 小规模企业所得税标准
  • 出口退税对企业利润的影响
  • 补交以前年度增值税和滞纳金怎么开票
  • 公司收境外汇款
  • 合伙企业收到的合伙金计入什么科目
  • 工程费用包括哪几类
  • 计提附加税的会计分录怎么写
  • 留抵的进项税可以退吗
  • 企业土地未全部使用如何缴纳房产税?
  • 竣工决算调整入库流程
  • 现金流量具体内容
  • 我公司对某公司作如下措施
  • 收到服务费专票怎么做账
  • 申报补贴项目 审计
  • nodejs怎么更新版本
  • php imagecopymerge
  • 进项发票认证后怎么做账
  • 展开双翅的绯红之花
  • 增值税专用发票电子版
  • 前端 自动化脚本 怎么写
  • opencv几何变换
  • 被黑客攻击
  • php字符串比较函数怎么写
  • php 下载上传文件
  • 交易性金融资产的入账价值
  • 个人提供翻译服务
  • windows安装mq
  • 使用增值税发票违法吗
  • 特惠贷利息怎么算
  • 企业购进生产设备的会计分录
  • 商誉在资产负债表中如何体现
  • 未发工资怎么办
  • 企业增资会计科目
  • 个人出租房屋需要缴纳个税吗
  • 无形资产的摊销年限及摊销方法
  • 股权收购协议书实际案例
  • 月末库存商品能抵税吗
  • 医院的自助缴费机怎么开具发票
  • 支票填写的规范与常识
  • 建账时都要建哪些科目
  • 怎么把操作系统转移到另一个盘
  • win73d设置怎么设置
  • ssd安装centos7
  • spoolsrv.exe - spoolsrv是什么进程 有什么作用
  • windows8怎么隐藏任务栏
  • ubuntu下载安装QQ的命令
  • 如何配置centos7下的apache服务
  • easyui下拉列表
  • Node.js开启Https的实践详解
  • cad cl命令在哪里
  • include eigen
  • js如何创建类
  • jquery开源
  • unity操作教程
  • js操作网页
  • 办理税控盘的流程
  • 民间非营利组织包括哪些单位
  • 家庭农场有什么用途
  • 不动产租赁如何征税
  • 佛山市国家税务局科长陈科长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设