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

  • 优酷怎么使用全景视频教程(优酷如何全屏观看)

    优酷怎么使用全景视频教程(优酷如何全屏观看)

  • 英特尔第 14 代 Meteor Lake-P 移动 CPU评测(英特尔第一代14纳米)

    英特尔第 14 代 Meteor Lake-P 移动 CPU评测(英特尔第一代14纳米)

  • 华为畅享10s如何隐藏应用(华为畅享10s如何长截屏)

    华为畅享10s如何隐藏应用(华为畅享10s如何长截屏)

  • OPPO手机爱奇艺分屏功能怎么用(oppo手机爱奇艺会员怎么登录)

    OPPO手机爱奇艺分屏功能怎么用(oppo手机爱奇艺会员怎么登录)

  • mhaal00华为什么型号(华为手机mhatl00)

    mhaal00华为什么型号(华为手机mhatl00)

  • qqvip到期了个性装扮还有吗(qq超级会员过期了个性装扮还在吗)

    qqvip到期了个性装扮还有吗(qq超级会员过期了个性装扮还在吗)

  • 抖音直播只能用手机吗(抖音直播只能用一个账号吗)

    抖音直播只能用手机吗(抖音直播只能用一个账号吗)

  • 如何查看qq登录的地点位置(如何查看qq登录历史记录)

    如何查看qq登录的地点位置(如何查看qq登录历史记录)

  • 加个内存条电脑会变快吗(加个内存条电脑开不了机)

    加个内存条电脑会变快吗(加个内存条电脑开不了机)

  • 快手设置里没有我的钱包(快手设置里没有开通直播怎么办)

    快手设置里没有我的钱包(快手设置里没有开通直播怎么办)

  • 关闭手机屏保设置在哪里(如果关闭手机屏保)

    关闭手机屏保设置在哪里(如果关闭手机屏保)

  • drozer工具是做什么(doors工具)

    drozer工具是做什么(doors工具)

  • 苹果11看小视频为什么会卡(苹果11看小视频自己横屏怎么回事)

    苹果11看小视频为什么会卡(苹果11看小视频自己横屏怎么回事)

  • ipad2为什么不能下载应用(iPad2为什么不能下载QQ)

    ipad2为什么不能下载应用(iPad2为什么不能下载QQ)

  • ppt自定义标签怎么设置(ppt自定义标签怎么取消)

    ppt自定义标签怎么设置(ppt自定义标签怎么取消)

  • 聊天记录被迁移知道吗(怎么知道自己手机聊天记录被迁移)

    聊天记录被迁移知道吗(怎么知道自己手机聊天记录被迁移)

  • win7受限账户怎么创建(win7限制用户权限)

    win7受限账户怎么创建(win7限制用户权限)

  • 苹果11怎么双卡(苹果11怎么双卡切换)

    苹果11怎么双卡(苹果11怎么双卡切换)

  • 苹果7扩容后会有影响吗(苹果7扩容后会卡吗)

    苹果7扩容后会有影响吗(苹果7扩容后会卡吗)

  • 手机不欠费为什么打不了电话(手机不欠费为什么提示已停机)

    手机不欠费为什么打不了电话(手机不欠费为什么提示已停机)

  • 拼多多果园里的菜地在哪(拼多多果园里的小说功能在哪里)

    拼多多果园里的菜地在哪(拼多多果园里的小说功能在哪里)

  • ppt如何添加一级标题(ppt制作添加一页怎么弄)

    ppt如何添加一级标题(ppt制作添加一页怎么弄)

  • 美拍如何加文字(美拍怎么在视频打字)

    美拍如何加文字(美拍怎么在视频打字)

  • 无法访问您可能没有权限使用网络资源(无法访问您可能的网络)

    无法访问您可能没有权限使用网络资源(无法访问您可能的网络)

  • 如何利用路由器监控电脑网速?路由器分配网络带宽和限制别人网速的方法(如何利用路由器登陆花生壳)

    如何利用路由器监控电脑网速?路由器分配网络带宽和限制别人网速的方法(如何利用路由器登陆花生壳)

  • 几种常见的归一化方法(常见的归中反应有哪些)

    几种常见的归一化方法(常见的归中反应有哪些)

  • 增值税发票阅读器干什么用的
  • 简易计税方法是什么意思
  • 个人所得税六项专项附加扣除是什么
  • 先报个税还是先报增值税,有影响吗?
  • 异地分公司需要什么手续
  • 资产负债表应交税金负数是什么意思
  • 预缴的税款
  • 辅导期一般纳税人
  • 机器配件作价卖掉,如何做进项税转出
  • 电子商票贴现具备的条件
  • 会计上的未达账项是什么
  • 出口预收货款发生的时间和报表上的时间不一样怎么办
  • 样品不收钱怎么做会计分录
  • 银行余额调节表模板
  • 取得农产品流通环节免税发票可以扣抵吗?
  • 税法是否认可低税收
  • 商业汇票概念股票
  • 行政单位租个人房子能用收据下账吗
  • 转让股权应具备什么条件
  • 金税盘开的发票显示未报送怎么办
  • 税控盘不存在怎么回事
  • 企业修路会计分录
  • 自助设备使用费会计科目
  • 企业合并的会计分录
  • 房地产开发项目土地使用权的取得方式
  • 厂家质量问题商家有责任吗
  • 本月未认证的怎么处理
  • 研发费用加计扣除优惠明细表
  • linux 匹配字符
  • 收到保险公司车辆保险发票会计分录
  • 一年内的待摊费用可以一次性进入成本吗
  • php预定义常量要使用define函数进行定义
  • 超市预售卡怎么记账
  • PHP:session_decode()的用法_Session函数
  • 如何预防电脑系统崩溃
  • 多枝发财树怎么修剪
  • 领用增值税专用发票需要旧发票兑换吗
  • vue跳转到外部链接且带上参数
  • 逾期未收回包装物押金增值税
  • code structure
  • YOLOv8(n/s/m/l/x)&YOLOv7(yolov7-tiny/yolov7/yolov7x)&YOLOv5(n/s/m/l/x)不同模型参数/性能对比(含训练及推理速度)
  • php8.0 特性
  • 润滑脂开票属于成品油吗
  • 小满秒懂百科
  • nodejs如何使用
  • echarts 官网
  • Python中如何定义一个变量
  • 无实物的固定资产有哪些
  • 利息收入凭证会计分录
  • 用vue做的企业项目
  • dede织梦怎么转成zblog
  • 建筑企业会计科目的设置及核算
  • 企业利润怎么提取出来
  • 基本存款账户可以办理
  • 福利费的进项税额会计分录
  • 小规模纳税人增值税专用发票税率
  • 坏账准备计提的方法和比例
  • 工厂不开票怎么办
  • 一般纳税人拿到普票怎么处理账务
  • 无需缴纳的税费是什么
  • 办理三证合一多久能拿到
  • 关机并重启是怎么回事
  • 通过注册表设置u盘启动
  • winpsd.exe - winpsd是什么进程
  • macpro删除文件
  • win10键盘大小写不能切换了
  • win7系统如何屏幕放满屏幕
  • win7桌面小工具如何设置使用
  • win8和win10怎么共享文件
  • linux系统开发环境
  • linux在哪里操作
  • opengl es2.0
  • jquery删除所有class
  • js最简单的代码
  • shell 读取文件中的每一行并存储到数组
  • java对象怎么比较
  • 详解Bootstrap四种图片样式
  • 深入python3
  • 一般纳税人开票的税率是多少
  • 外省车险保单,有何不利的事
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设