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

  • 怎么避免微信封号(怎样避免微信封号)

    怎么避免微信封号(怎样避免微信封号)

  • 苹果x屏幕属于2k屏吗(苹果x屏幕属于2k吗)

    苹果x屏幕属于2k屏吗(苹果x屏幕属于2k吗)

  • 微信余额怎么设置密码(微信余额怎么设置指纹)

    微信余额怎么设置密码(微信余额怎么设置指纹)

  • 苹果se2怎么截屏(se2怎么截屏幕)

    苹果se2怎么截屏(se2怎么截屏幕)

  • 微信可以同步两个手机收信息吗(微信可以同步两个电脑登录吗)

    微信可以同步两个手机收信息吗(微信可以同步两个电脑登录吗)

  • 苹果手机散热孔在哪里(苹果手机散热孔灰尘怎么处理)

    苹果手机散热孔在哪里(苹果手机散热孔灰尘怎么处理)

  • 苹果11基带是高通还是英特尔(苹果11使用的基带)

    苹果11基带是高通还是英特尔(苹果11使用的基带)

  • 电影hdr什么意思(电影 hdr)

    电影hdr什么意思(电影 hdr)

  • 快手注销账号什么意思(快手注销账号什么状态)

    快手注销账号什么意思(快手注销账号什么状态)

  • 线控耳机唤醒是什么意思(线控耳机唤醒是不是能自动关闭多媒体音量)

    线控耳机唤醒是什么意思(线控耳机唤醒是不是能自动关闭多媒体音量)

  • ipadpro二代三代区别(ipadpro2020三代和二代)

    ipadpro二代三代区别(ipadpro2020三代和二代)

  • word视图的显示方式(word视图显示分页效果)

    word视图的显示方式(word视图显示分页效果)

  • ip68级防水有多强(ip68级防水是多少米)

    ip68级防水有多强(ip68级防水是多少米)

  • 为什么我苹果id老是被锁(为什么我苹果id密码正确也登不上)

    为什么我苹果id老是被锁(为什么我苹果id密码正确也登不上)

  • 唯品会账号因安全问题被冻结怎么办(唯品会该账号因安全风险被冻结怎么办)

    唯品会账号因安全问题被冻结怎么办(唯品会该账号因安全风险被冻结怎么办)

  • 备忘录怎么看字数(备忘录上怎么看字数)

    备忘录怎么看字数(备忘录上怎么看字数)

  • 手机占用内存大怎么办(手机占用内存大的原因)

    手机占用内存大怎么办(手机占用内存大的原因)

  • 字符串是什么(字符串是什么意思)

    字符串是什么(字符串是什么意思)

  • 钉钉已注册怎么激活(钉钉已注册怎么注销账号)

    钉钉已注册怎么激活(钉钉已注册怎么注销账号)

  • 惠普m227双面复印教程(惠普m227sdn双面复印)

    惠普m227双面复印教程(惠普m227sdn双面复印)

  • 陌陌怎么知道被对方拉黑了(陌陌怎么知道被拉黑名单)

    陌陌怎么知道被对方拉黑了(陌陌怎么知道被拉黑名单)

  • bios设置网卡启动来恢复网络正常使用的方法图文教程(bios设置网卡开启)

    bios设置网卡启动来恢复网络正常使用的方法图文教程(bios设置网卡开启)

  • 隐藏在高草丛中的老虎,印度阿萨姆邦 (© Sandesh Kadur/Minden Pictures)(隐藏在草丛里)

    隐藏在高草丛中的老虎,印度阿萨姆邦 (© Sandesh Kadur/Minden Pictures)(隐藏在草丛里)

  • 公司购买二手房可以开增值税专用发票吗
  • 内含报酬率与必要报酬率相等
  • 补贴收入如何入账
  • 房产税简易征收的时间
  • 免税的开成有税率的怎么办
  • 进口奶牛缴纳增值税
  • 无形资产报废的例题
  • 微信手续费发票可以抵扣吗?
  • 编制竣工结算的具体增减内容有哪几个方面?
  • 来料加工账务处理办法
  • 公司开出的经济补偿金可以税前扣除吗
  • 报关单增值税税单收货人更改
  • 哪些费用税务局可以抵扣
  • 营改增后房产税计税依据 土地价款
  • 免抵退申报的操作流程图
  • 业务招待费税前扣除规定
  • 营改增后房地产开发税费一览表
  • 物流公司开票税率
  • 为什么无形资产减值准备一经计提不得转回
  • 小规模手撕发票申报填在哪
  • 税控系统服务费怎么抵扣
  • 计提法定盈余公积分录并结转
  • win11有哪些提升
  • 以房产投资联营,收取固定收入,不承担联营风险的房产
  • 境外资金购买境内物业
  • 纳税人解除劳动合同证明
  • 微软商店 低价区
  • php教程全集
  • 收到单据
  • php date format
  • php 如何防止接口被刷
  • PHP:imagecreatefromgd()的用法_GD库图像处理函数
  • 卡齐兰加国家公园地理位置
  • 二手车销售发票的开具怎么处理?
  • ThinkPHP中Common/common.php文件常用函数功能分析
  • uni-app--》uni-app的生命周期讲解
  • vue3.0配置
  • telnet命令大全
  • php和mysql的软件怎么部署
  • 应收利息的罚息是复利吗
  • 应交增值税为负数怎么处理
  • 增值税专票的开票要求
  • 财政拨入的科技费是什么
  • 跨年发票可以作为税前扣除的时限
  • 防伪税控开票
  • 核销发生的坏账损失
  • 饲料加工企业可以转让吗
  • 轿车折旧年限为几年
  • 收入重复开票跨年了怎么处理
  • 商业承兑汇票如何追索
  • 发票校验码被章盖住了
  • sql-server
  • 开承兑需要多少手续费
  • 公司实行全成本核算工资怎么算
  • 包装物报废收回残料
  • 成本法和权益法的转换
  • 一次性补缴养老保险的最新规定
  • 认证抵扣发票
  • 增值税相关的问题
  • 微软发布linux
  • microsoft onedrive怎么关闭
  • mac所有窗口最小化
  • 通用pe工具箱安装win7
  • windows7怎么打开开机启动项
  • WIN10系统如何彻底永久关闭自动更新?建议收藏!
  • linux 文字处理
  • windows8内存
  • 苹果mac系统怎么安装pip工具
  • win10家庭版怎么关闭windows defender
  • w8网络设置
  • linux系统中文输入法切换不出来
  • linux怎么操作命令
  • bootstrap模态框按钮无响应
  • js表单事件有哪些
  • javascript获取html元素的方法
  • 广东增值税电子普通发票怎么开
  • 小规模国税申报表填写方法
  • 2020年海南个人所得税新规定
  • 公司如何制定制度
  • 去银行签贷款合同后多久办过户
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设