开发过程中需要根据商品信息生成海报,供用户下载海报 、分享海报等

效果:

1.首先搭建页面结构:

  <!-- 按钮结构 --><view class="share flex"><u-icon name="scan" size="20" @click="drawPic"></u-icon><u-icon name="share" size="20" @click="shareWeixin"></u-icon>分享</view><!-- 海报画布 --><view class="canvasBox" v-if="showPoster"><text class="close" @click="showPoster = false">x</text><canvas style="width: 220px;height: 340px;" class="canvas" canvas-id="mycanvas"></canvas><view class="btmBox"><view class="item"><u-icon name="weixin-fill"></u-icon><view style="font-size:12px" @click="shareImg">分享好友</view></view><view class="item"><u-icon name="coupon"></u-icon><view style="font-size:12px" @click="saveImage">保存海报</view></view></view></view>

2.js控制用户点击二维码按钮后,弹出dialog展示海报内容:

  methods: {//绘制海报drawPic() {this.showPoster = trueuni.showLoading({title: '正在生成海报'})let myCanvas = uni.createCanvasContext('mycanvas', this)// 封面标题myCanvas.font = '12px Arial'myCanvas.fillText('鹏程监测 APT', 110, 30)// 封面图myCanvas.drawImage(this.imgList[1], 30, 40, 170, 170)// 价格myCanvas.font = ` 14px Arial`myCanvas.fillStyle = 'blue'myCanvas.fillText('¥ 150', 30, 220)myCanvas.font = `10px Arial`myCanvas.fillStyle = '#9C9C9C'myCanvas.fillText('原价:¥0.00', 80, 220)myCanvas.font = `14px Arial`myCanvas.fillStyle = '#000'myCanvas.fillText('外观监测', 30, 240)// 分享码myCanvas.drawImage(this.imgList[1], 150, 280, 50, 50)//长按识别购买myCanvas.font = '10px Arial'myCanvas.fillStyle = '#9C9C9C'myCanvas.fillText('长按识别或保存图片', 30, 310)//开始绘画,必须调用这一步,才会把之前的一些操作实施myCanvas.draw(false, res => {uni.canvasToTempFilePath({canvasId: 'mycanvas',success: res => {console.log(res, 'draw')uni.hideLoading()this.poster = res.tempFilePaththis.showPoster = true},fail: err => {console.log(err, 'fail')uni.hideLoading()uni.showToast({title: '名片加载失败',duration: 2000})}})})},//点击保存saveImage() {var _this = thisuni.showLoading({title: '正在生成图片...'})uni.saveImageToPhotosAlbum({filePath: _this.poster,success(res) {console.log(res, 'downlaod')uni.hideLoading()uni.showModal({title: '保存成功',content: '图片已成功保存到相册,快去分享到您的圈子吧',showCancel: false})}})},// 分享--展示大图shareImg() {uni.previewImage({current: 0,urls: [this.poster]})},// 分享到微信好友shareWeixin() {const _that = thisuni.showLoading({title: '努力加载中...'})uni.share({provider: 'weixin',scene: 'WXSceneSession', //分享到聊天界面type: 5, //分享为小程序imageUrl: _that.poster, //png地址title: '',miniProgram: {//type为5必选id: '', //微信小程序原始idpath: '', //点击链接进入的页面type: 0, //微信小程序版本类型,可取值: 0-正式版; 1-测试版; 2-体验版。 默认值为0。webUrl: '' //兼容低版本的网页链接},success: res => {console.log(res, 'share')uni.hideLoading()showToast({title: '分享成功',icon: 'none'})}})}}

uniapp点击生成商品海报、下载海报、分享海报相关推荐

  1. uni-App小程序、canvas 生成海报 +下载图片+分享微信好友

    功能:分享弹窗,生成海报并支持保存,目前仅支持微信小程序 ·插件包链接 https://ext.dcloud.net.cn/plugin?id=586 代码: <template>< ...

  2. 解决 uni-app 使用 Painter 生成商品海报真机模糊问题

    每写一篇文章都需要前言进行背景的阐述,方便自己和其他遇到同样问题的朋友快速定位是否为同一类问题. 在开发 uni-app 的过程中分享商品时需要生成对应的商品海报图,个人也试了几款社区提供的插件,坑也 ...

  3. 淘宝,速卖通,天猫同理,商品视频下载过程分享,2019/10/21更新

    正常来说,小网站的图片和视频非常容易下载,匹配到视频展示的那个节点找到视频链接就可以开始进行下 载了.可是对于淘宝之类的大一点的手段,增加难度,在video节点那里并非是直接调用音频视频链接啥的,打开 ...

  4. 小程序Canvas生成分享海报避坑指南

    关于小程序使用Canvas画布生成分享海报,网上有很多的教程,但是结合到自己的业务上面就BUG百出了 接下来分享一下我的经历 微信出了新的api 微信公众平台目前更新不是太即使,查问题好多帖子都是一两 ...

  5. uniapp 生成商品海报并分享保存

    uniapp 生成商品海报并分享保存 <template><view class="center"><view class="icon-it ...

  6. uniapp生成商品分享海报

    uniapp用canvas生成一个分享商品的海报 文章目录 前言 一.展示效果 二.使用步骤 1.HTML部分 2.CSS部分 3.JS部分 总结 前言 uniapp用canvas生成一个分享商品的海 ...

  7. uniapp 生成商品分享通用海报源码详解

    uniapp 生成商品分享通用海报源码,使用canvas生成海报,圆片加圆角,标题换行显示两排 多余点点,兼容H5端和小程序端. 组件显示代码<template><view>& ...

  8. uniapp之小程序端生成分享海报(带自定义参数的二维码)

    内容需求: 小程序端生成一个海报,海报内容包括当前授权账号的头像,当前授权账号的邀请码,一张特定图片,分享页面的带对应参数的小程序二维码:生成的海报需要保存到本地 功能方法: 1.前端用canvas绘 ...

  9. [Java生成商品的海报图片 ]

    目录 前言: 生成商品海报图片需要处理两个问题: 依赖: 编写生成海报代码 另一个方法: 补全上面的main测试方法: 前言: 你知道的 这只是一个简单笔记...... 生成商品海报图片需要处理两个问 ...

最新文章

  1. 线性回归之模型的保存和加载
  2. 服务器发送退出状态127,WebDriverException:消息:服务chromedriver意外退出。状态代码为:127...
  3. 实验:是否图片的重叠区域携带了决定分类的所有信息?
  4. Swift数据类型(一)
  5. windows编程(八)
  6. 深度学习(31)随机梯度下降九: Himmelblau函数优化实战
  7. ZED ROS包发布topic介绍
  8. 兆观毫米波监护仪亮相CMEF 开创养老监护新时代
  9. java switch finally_JavaSE
  10. .NET Framework 4.5的C#中的对话框消息
  11. Kepserver如何连接InTouch
  12. 基于C语言的个人信息管理系统
  13. 扫描全能王添加头像的方法
  14. chorme浏览器完美保存整个网页
  15. 【Ubuntu+ROS安装方法】
  16. 我国计算机系统安全保护等级的划分,规范《GB17859-1999-计算机信息系统安全保护等级划分准则》.pdf...
  17. 学生专用计算机怎么发出声音,计算机技巧-如何使显示器的内置扬声器发出声音...
  18. 项目经理(Project Manager)和产品经理(Product Manager),简称PM。
  19. 【讲清楚】rebase的使用
  20. WebRTC多人音视频聊天架构及实战

热门文章

  1. 确定性知识推理方法--产生式推理
  2. Python 自动化操作 Excel 绘制条形图!
  3. 肖臻公开课(八)——比特币中的挖矿
  4. html同时播放多个文件夹,怎么把很多文件一起同时放入一个文件夹内
  5. 费控产品之易快报洞察解析
  6. Java序列化与注解面试题
  7. 微信小程序 宠物社区源码
  8. CCIE-MPLS路由传递
  9. 记录一下申请邓白氏编码的完整流程
  10. 关于网络游戏的影响(腾讯游戏)