位置: 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可视化面板怎么打开)

  • oppowatch2怎么连接蓝牙耳机(oppowatch2怎么连接苹果手机)

    oppowatch2怎么连接蓝牙耳机(oppowatch2怎么连接苹果手机)

  • 抖音如何删掉共同关系(抖音怎么删掉共同关系)

    抖音如何删掉共同关系(抖音怎么删掉共同关系)

  • 快手看不到别人的关注和粉丝(快手看不到别人的动态)

    快手看不到别人的关注和粉丝(快手看不到别人的动态)

  • 抖音私信发的视频怎么保存(抖音私信发的视频无法查看)

    抖音私信发的视频怎么保存(抖音私信发的视频无法查看)

  • 小红书号是什么(小红书号是什么平台)

    小红书号是什么(小红书号是什么平台)

  • 抖音播放量0的可以删吗(抖音播放量的软件)

    抖音播放量0的可以删吗(抖音播放量的软件)

  • 荣耀畅玩9a怎么设置时间(荣耀畅玩9a怎么玩光遇)

    荣耀畅玩9a怎么设置时间(荣耀畅玩9a怎么玩光遇)

  • png格式用什么打开(png什么图片格式)

    png格式用什么打开(png什么图片格式)

  • 美团商家不处理退款怎么办(美团商家不给退怎么办)

    美团商家不处理退款怎么办(美团商家不给退怎么办)

  • 华为手机怎么设置个人热点(华为手机怎么设置天气预报在桌面)

    华为手机怎么设置个人热点(华为手机怎么设置天气预报在桌面)

  • 苹果已购买的项目隐藏了怎么找出来(苹果已购买的项目怎么退订)

    苹果已购买的项目隐藏了怎么找出来(苹果已购买的项目怎么退订)

  • 苹果手机没设置闹钟为什么会响(苹果手机没设置密码开机却要密码打不开手机了)

    苹果手机没设置闹钟为什么会响(苹果手机没设置密码开机却要密码打不开手机了)

  • 快手标志代表什么意思(快手标志代表什么含义)

    快手标志代表什么意思(快手标志代表什么含义)

  • 4g手机为什么显示5g网络(4g手机为什么显示2g网络怎么恢复)

    4g手机为什么显示5g网络(4g手机为什么显示2g网络怎么恢复)

  • word里面怎么画线段(word里面怎么画虚线线条)

    word里面怎么画线段(word里面怎么画虚线线条)

  • 手机主题如何下载(手机主题如何下载到电脑)

    手机主题如何下载(手机主题如何下载到电脑)

  • 如何生成表目录图目录(word如何生成表目录)

    如何生成表目录图目录(word如何生成表目录)

  • iphone xr有指纹解锁吗(苹果xr有指纹)

    iphone xr有指纹解锁吗(苹果xr有指纹)

  • beats入耳式怎么用(beats有入耳检测吗)

    beats入耳式怎么用(beats有入耳检测吗)

  • bios setup是什么意思中文(biossetup是什么意思啊笔记本电脑)

    bios setup是什么意思中文(biossetup是什么意思啊笔记本电脑)

  • qq人脸识别在哪(QQ人脸识别在哪里查看)

    qq人脸识别在哪(QQ人脸识别在哪里查看)

  • vivoz3x怎么弄返回键(vivoz3i怎么有返回键)

    vivoz3x怎么弄返回键(vivoz3i怎么有返回键)

  • 荣耀手机拍照怎么显示时间(荣耀手机拍照怎么去掉手机型号)

    荣耀手机拍照怎么显示时间(荣耀手机拍照怎么去掉手机型号)

  • kiwal10是什么型号(kiwal10是什么型号多少钱)

    kiwal10是什么型号(kiwal10是什么型号多少钱)

  • mac系统任务栏中搜索快捷键不见了怎么办?(macbookpro任务栏)

    mac系统任务栏中搜索快捷键不见了怎么办?(macbookpro任务栏)

  • token的作用(token的用处)

    token的作用(token的用处)

  • /etc/rc.local中加入的命令为什么不自动运行呢  Linux系统管理  ChinaUnix.net(/etc/rc.local添加内容)

    /etc/rc.local中加入的命令为什么不自动运行呢 Linux系统管理 ChinaUnix.net(/etc/rc.local添加内容)

  • 个人转让著作权免税吗
  • 经营活动产生的净现金流量计算公式
  • 其他应收款资产负债表是负数怎么办
  • 抵扣增值税怎么抵扣
  • 应收账款计提坏账后收回
  • 公司购买的绿植普票怎么抵扣
  • 无偿代建政府公告
  • 小规模没有进项票可以开销项票吗
  • 普通发票跨年作废有影响吗
  • 绿化企业所得税税率是多少
  • 旅行社差额征税增值税申报表怎么填
  • 所得税费用是在哪个科目
  • 待认证进项税额借方余额表示什么
  • 境外施工
  • 幼儿园是否缴纳残疾人保障金
  • 进项票没开过来可以先开销项票吗
  • 定额发票2019年规定
  • 微众银行账户验证账户0019向您尾号677账户
  • 技术服务费属于什么大类
  • 天猫技术服务费什么时候返还
  • 机械租赁税怎么开
  • 个人所得税征收计算方法
  • 餐饮店工装
  • 高新企业奖励补贴交税吗
  • 稿酬计入工资所得吗
  • 什么是货币资产负债表
  • ubuntu 20.04.1
  • php poll
  • 无形资产期末余额在哪方
  • 试用期不交金后面补缴
  • php网页编程
  • php析构方法怎么用
  • 小规模纳税人的个人所得税怎么算
  • 实用的开源软件
  • 常用激活函数及其导数
  • 防抖节流实现原理
  • python 动态
  • 事业结余对应政府会计哪个科目
  • 充话费如何开公司发票
  • 补发工资账务处理
  • 矿山征收
  • 今天收到的
  • mongodb导入数据三种方式
  • db2入门
  • 确认委托代销手续费的会计分录
  • pos机刷卡未成功却扣了钱啥时候就退回来了
  • 增值税发票查询全国统一发票查询平台
  • 房地产增值税计入什么科目
  • 工程中标费用放哪个科目
  • 一次性补缴一年社保
  • 其他应收款押金的现金流量
  • 固定资产的原价减去预计净残值后的余额
  • 消防设施 房产税
  • 事业单位打款多久到账
  • 会计借贷帐
  • solaris重启服务器命令
  • 高效内存管理
  • win预览版计划
  • 服务器远程超出配置范围
  • Windows Server 2008与2012建立林信任详细步骤
  • centos如何设置ip
  • win7如何彻底删除软件
  • win8关机一直转圈
  • win8更新设置
  • windows2008输入法
  • shell脚本连接服务器
  • perl语句
  • cocos2dx小游戏
  • 从头开始绘制一幅画图片
  • xml文件示例
  • web标准包含哪些
  • python 递归函数与循环的区别
  • android fragmentation
  • 税务分享风险如何解决
  • 普通发票冲红怎么报税
  • 小米之家可以
  • 2016年小微企业所得税优惠政策文号
  • 分红太多
  • 乌鲁木齐税收政策
  • 征地税税率是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设