首页 > 编程语言 >微信小程序:自动生成打卡海报

微信小程序:自动生成打卡海报

时间:2023-08-15 18:01:25浏览次数:39  
标签:function 海报 展示 微信 用户 context res 打卡



文章目录

  • 1 前言
  • 2 界面展示
  • 3 部分代码展示以及原理解释
  • 4 结语



微信小程序:自动生成打卡海报_javascript

完整项目下载:下载链接

1 前言

在当前的背单词小程序开发中,为满足用户学习完成后的展示需求,计划引入自动生成打卡海报功能,以提升用户参与度与推广效果。除了基本的海报生成功能,还可以考虑以下丰富内容:

  • 将用户的学习数据融入海报,展示用户的学习时长、单词掌握率等统计信息,让用户在分享的同时展示自己的学习成果。
  • 在海报中加入分享按钮,让用户可以直接点击分享到朋友圈,提高分享的便捷性和用户互动。
  • 将小程序的二维码嵌入海报中,使得用户在浏览海报时可以直接扫码进入小程序,方便其他用户的快速访问和体验。

综上所述,通过丰富的海报生成功能,不仅可以满足用户的展示需求,还能够增强用户的参与感与互动体验,同时为小程序的推广带来更多可能性。在接下来的开发中,我们可以逐步实现这些丰富内容,为用户带来更好的使用体验和分享效果。

2 界面展示

在首页点击生成海报;

微信小程序:自动生成打卡海报_小程序_02


小程序会自动生成海报;

微信小程序:自动生成打卡海报_javascript_03

用户可以点击“保存相册,分享到朋友圈”将海报图片保存至相册!注:由于是原型开发,后期可以不断调整使得海报更加美观。

3 部分代码展示以及原理解释

wxml

<!--index.wxml-->
<button bindtap="formSubmit">生成海报</button>

<view hidden="{{canvasHidden}}" class="mask">
    <view class="canvas-box">
        <canvas style="width: 800rpx;height: 1600rpx;" canvas-id="mycanvas" />
    </view>
</view>
<view class='imagePathBox' hidden="{{maskHidden == false}}" style="height: 100%;">
    <image src="{{imagePath}}" class='shengcheng'></image>
    <button class='baocun' bindtap='baocun'>保存相册,分享到朋友圈</button>
</view>

imagePathBox框体用于展示海报以及保存按钮;mask框体用于生成海报图片组件;

js
代码注释讲解得比较详细,逻辑比较简单。就是利用canvas生成海报并进行保存,然后调出之保存的海报并进行展示。最后利用wx.saveImageToPhotosAlbum()完成保存海报至相册的功能需求。

//index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    maskHidden: false,
    imagePath:"",
  },
  createNewImg: function () {
    var that = this;
    var context = wx.createCanvasContext('mycanvas');
    context.setFillStyle("#fff")
    context.fillRect(0, 0, 375, 667)
    var path = "../../images/city.png";
    context.drawImage(path, 56, 56, 262, 349);
    var path5 = "../../images/erweicode.jpg";//二维码
    var name = that.data.name;
    //绘制学习情况
    context.setFontSize(25);
    context.setFillStyle('#333');
    context.setTextAlign('left');
    context.fillText("今日学习英语词汇", 80, 450);
    context.stroke();
    context.setFontSize(50);
    context.setFillStyle('#333');
    context.setTextAlign('left');
    context.fillText(0, 150, 510);
    context.stroke();
    //绘制左下角文字
    context.setFontSize(14);
    context.setFillStyle('#333');
    context.setTextAlign('left');
    context.fillText("长按识别小程序", 70, 560);
    context.stroke();
    context.setFontSize(14);
    context.setFillStyle('#333');
    context.setTextAlign('left');
    context.fillText("跟我一起来学习吧~~", 70, 580);
    context.stroke();
    //绘制右下角小程序二维码
    context.drawImage(path5, 230, 530,80,80);
    context.draw();
    //将生成好的图片保存到本地
    setTimeout(function () {
      wx.canvasToTempFilePath({
        canvasId: 'mycanvas',
        success: function (res) {
          var tempFilePath = res.tempFilePath;
          that.setData({
            imagePath: tempFilePath,
            canvasHidden: true
          });
        },
        fail: function (res) {
          console.log(res);
        }
      });
    }, 200);
  },
  baocun: function () {
    var that = this
    wx.saveImageToPhotosAlbum({
      filePath: that.data.imagePath,
      success(res) {
        wx.showModal({
          content: '海报已保存到相册',
          showCancel: false,
          confirmText: '确定',
          confirmColor: '#333',
          success: function (res) {
            if (res.confirm) {
              console.log('用户点击确定');
              /* 该隐藏的隐藏 */
              that.setData({
                maskHidden: false
              })
            }
          }, fail: function (res) {
            console.log(res)
          }
        })
      }
    })
  },
  formSubmit: function (e) {
    var that = this;
    this.setData({
      maskHidden: true
    });
    wx.showToast({
      title: '海报生成中...',
      icon: 'loading',
      duration: 1000
    });
    setTimeout(function () {
      wx.hideToast()
      that.createNewImg();
      that.setData({
        maskHidden: true
      });
    }, 1000)
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onl oad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})

其余代码这里不就不展示了,主要是一些组件外观的调整,逻辑已经展示完了。完整代码请至下载区获取!

4 结语

在背单词小程序的开发过程中,通过引入自动生成打卡海报功能,我们为用户提供了一个全新的学习展示方式。通过精心设计的海报,用户不仅可以展示自己的学习成果,还能够获得成就感和身份认同。通过不断丰富海报的内容,如学习统计数据,我们进一步提升了用户的参与度和互动体验。

同时,将小程序的二维码嵌入海报,为推广小程序增加了更多的可能性。用户可以通过海报扫码直接进入小程序,体验更多精彩内容。这不仅有助于提升小程序的曝光度,也为用户的学习分享带来了更多便利。

微信小程序:自动生成打卡海报_小程序_04


标签:function,海报,展示,微信,用户,context,res,打卡
From: https://blog.51cto.com/u_15229916/7091772

相关文章

  • 微信开发之一键搜码佳群的技术实现
    好友将群二维码发送给机器人,机器人调用本接口将自动识别入群请求URL:http://域名地址/scanJoinRoom请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识url是string群二维码url(二维码解析后的url)type否......
  • 微信开发之一键扫码入群的技术实现
    好友将群二维码发送给机器人,机器人调用本接口将自动识别入群请求URL:http://域名地址/scanJoinRoom请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识url是string......
  • 记录--vue3问题:如何实现微信扫码授权登录?
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助一、需求微信扫码授权,如果允许授权,则登录成功,跳转到首页。二、问题1、微信扫码授权有几种实现方式?2、说一下这几种实现方式的原理是什么?3、vue中的微信扫码授权登录,与uniapp和原生小程序的微信授权登录,它们......
  • 微信开发之一键修改好友备注的技术实现
    简要描述:修改好友备注请求URL:http://域名地址/modifyRemark请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识wcId是string好友微信idremark是string好友备注返回数据:参数名类型说明codestring1000......
  • uniapp,微信小程序获取用户手机号
    1.获取手机号的按钮<buttonv-if="!mobile"class="btns"style="margin-top:-100rpx;"open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">授权手机号码</button>2.获取手机号的函数getPhoneNumber()getPhoneNu......
  • 短说通用版4.0.0测试版发布|新增企业微信推送、公众号群发助手等功能
    Hi大家好,我是给你们带来惊喜的运营小番茄。本期更新为短说通用版4.0.0测试版。本次V4.0.0版本主要更新的功能有企业微信消息推送功能、版主@版块全员功能、公众号群发助手模块、链接内容自动识别、付费版块可设置免付费用户组等,以及对其他已有功能进行了优化。涉及版本:短说通用版......
  • 微信开发之一键退出群聊的技术实现
    简要描述:退出群聊请求URL:http://域名地址/quitChatRoom请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是string登录实例标识chatRoomId是string群id返回数据:参数名类型说明codestring1000成功,1001失败msgstring反馈信......
  • 基于微信小程序的微海商城设计与实现-计算机毕业设计源码+LW文档
    摘 要随着互联网技术的发展,传统的商品销售迎来了机遇,我国是个人口大国,商品的需求量大,如何推广商品的销售是企业非常关注的事情。随着电子商务多元化的发展,各种类型的商品逐渐转移到线上销售。在互联网的帮助下,带动企业打开销路,促进商品销售的可持续发展。同时,通过基于微信小程......
  • 基于微信小程序的房屋租赁小程序设计与实现-计算机毕业设计源码+LW文档
    摘要随着计算机技术的不断发展,有效地促进了社会各行业的进步,信息化逐渐运用到人们的生活中。传统模式的房屋租赁管理满足不了现代人的生活追求、服务质量和服务速度。使用管理系统进行管理,成本大大减小,同时可借助互联网强大的流量入口,使得推广的难度也大大降低。因此设计一个管理......
  • 基于微信小程序的居民疫情服务系统-计算机毕业设计源码+LW文档
    摘 要新冠病毒传播迅速,已经严重影响了人类生命安全,防控手段成为大众关注的重点。另外,随着目前信息化手段的进步,使用技术手段可以有效的对新冠疫情进行防控管理。在社区,人员多,出入流动性大,如果单靠人工进行管理,很难进行有效的统计。为此提出开发基于微信小程序的居民疫情服务系统......