• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

小程序分享海报简单实现

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

小程序分享海报简单实现 最终实现效果 使用wxa-plugin-canvas

传送:https://github.com/jasondu/wxa-plugin-canvas
wxa-plugin-canvas是一个生成二维码海报的组件,通过非常简单的配置就可以生成精美的海报
使用:
1 在根目录新建文件夹components将wxa-plugin-canvas添加到该文件中
2 在单文件页面使用
.json文件中使用组件(注意引入的路径)
"usingComponents": { "poster": "../../components/wxa-plugin-canvas/poster" }
.js文件中引入

import Poster from "../../components/wxa-plugin-canvas/poster/poster.js"

.wxml中使用标签

  <poster id="poster" config="{{posterConfig}}" bind:success="onPosterSuccess" bind:fail="onPosterFail"></poster>

wxml文件 小案例

<!--index.wxml-->
<view class="container">
    <button bindtap="drawPoster">获取海报</button>
  </view>
  <poster id="poster" config="{{posterConfig}}" bind:success="onPosterSuccess" bind:fail="onPosterFail"></poster>
  <view wx:if="{{showposterImg}}" class="popup-mask"></view>
  <view wx:if="{{showposterImg}}" class="posterImg-box">
    <image mode="widthFix" class="posterImg" src="{{posterImg}}"></image>
    <view class="btn-create" bindtap="savePosterPic">保存到相册</view>
</view>

js文件

Page({
  data: {},
  // 开始绘制
  async drawPoster() {
    const _this = this
    const qrcodeRes = {
      scene: "poster",
      page: \'pages/index/index\',
      is_hyaline: true,
      autoColor: true,
      expireHours: 1
    }
    const qrcode = "https://ftp.bmp.ovh/imgs/2020/09/186537cbbd51fa76.png"  // 二维码路径
    const pic = "https://ftp.bmp.ovh/imgs/2020/09/3e9fd2c39153fa95.png" // 图片路径
    wx.getImageInfo({
      src: pic,
      success(res) {
        const height = 490 * 667/375
        _this.drawSharePicDone(height, qrcode)
      },
      fail(e) {
        console.error(e)
      }
    })
  },
  // 绘制参数
  drawSharePicDone(picHeight, qrcode) {
    const _this = this
    const _baseHeight = picHeight
    this.setData({
      posterConfig: {
        width: 750,
        height: picHeight,
        backgroundColor: \'#fff\',
        debug: false,
        blocks: [
          {
            x: 76,
            y: 74,
            width: 604,
            height: picHeight + 120,
            borderWidth: 2,
            borderColor: \'#c2aa85\',
            borderRadius: 8
          }
        ],
        images: [
          {
            x: 133,
            y: 133,
            url: "https://ftp.bmp.ovh/imgs/2020/09/3e9fd2c39153fa95.png", // 商品图片
            width: 490,
            height: picHeight
          },
          {
            x: 76,
            y: _baseHeight + 199,
            url: qrcode, // 二维码
            width: 222,
            height: 222
          }
        ],
        texts: [
          {
            x: 352,
            y: _baseHeight + 260, //上边距
            width: 650,
            lineNum: 2,
            text: "测试商品",
            // textAlign: \'center\',
            fontSize: 40,
            color: \'#333\'
          },
          {
            x: 352,
            y: _baseHeight + 330,
            text: \'¥\' + "100",
            // textAlign: \'center\',
            fontSize: 50,
            color: \'#e64340\'
          },
          {
            x: 352,
            y: _baseHeight + 390,
            text: \'长按识别小程序码\',
            fontSize: 28,
            color: \'#999\'
          }
        ],
      }
    }, () => {
      Poster.create();
    });
  },
  // 绘制成功
  onPosterSuccess(e) {
    console.log(\'success:\', e)
    this.setData({
      posterImg: e.detail, // 当前页面图片路径
      showposterImg: true
    })
  },
  // 绘制失败
  onPosterFail(e) {
    console.error(\'fail:\', e)
  },
  // 保存图片
  savePosterPic(){
    const _this = this
    // 调用小程序保存图片api
    wx.saveImageToPhotosAlbum({
      filePath: "https://ftp.bmp.ovh/imgs/2020/09/d2dab2061d80ae3f.jpg",
      success: (res) => {
        wx.showModal({
          content: \'已保存到手机相册\',
          showCancel: false,
          confirmText: \'知道了\',
          confirmColor: \'#333\'
        })
      },
      fail: (res) => {
        wx.showToast({
          title: "保存失败",
          icon: \'none\',
          duration: 2000
        })
      }
    })
  }
})

wxss文件

.posterImg-box{
  position: fixed;
  top:0;
  bottom:0;
  left:0;
  right:0;
  z-index: 100;
  text-align: center;
}
.btn-create{
  width:100%;
  height:50px;
  background: #00B26A;
  color:#fff;
  line-height: 50px;
  text-align: center;
  border-radius: 5px;
}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序海报生成功能发布时间:2022-07-18
下一篇:
轻松生成小程序分享海报发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap