前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[mini-blog][v2.3.0]博客小程序积分功能整改

[mini-blog][v2.3.0]博客小程序积分功能整改

作者头像
Bug生活2048
发布2020-05-09 10:34:51
7411
发布2020-05-09 10:34:51
举报
文章被收录于专栏:Bug生活2048Bug生活2048

信誓旦旦上了积分功能之后发现与广告组件存在冲突。

背景

在上个版本把积分功能的整体逻辑跑通了,但似乎利用积分跳过广告这一功能违背了广告组件的初衷,所以当发布后,我的广告功能失效了。

截图1

之后紧急发布了两个版本,试图绕过去,但发现广告组件审核还是很犀利的,驳回原因也写的很具体。

截图2

当然我也有看到过漏网之鱼的,有些用户用我的积分功能成功过审的同时也没和广告组件冲突的。

但按照腾讯小程序广告组件的本质,是不希望开发者利用广告组件作为一种手段参与到你的需求当中。比如积分跳过广告,会员跳过广告之类的。

改变

既然积分跳过广告的权益无法变现,只能让积分赋予其他的用户权益了。

所以暂时加了截图中的两项权益,补签和昵称高亮。都是比较常规的权益,因为不太想对原来的代码大动「回看之前写的代码,有点不忍直视了」

截图3

补签到的流程还是比较简单的,在mini_member集合中新增了补签次数的字段,积分兑换后自动累加,当进行补签时再进行扣除。

截图4

这里用到了日历的点击事件,在调用云函数补签完成之后,记得将页面中相关的补签次数,选中样式等进行重新渲染,另外没有补签和已经签到过的日期忽略对应的点击事件,核心代码如下:

代码语言:javascript
复制

onTapDay(e) {
    let that = this
    console.log('onTapDay', e.detail);
    if (e.detail.choosed) {
      if (Number(that.data.signedRightCount) <= 0) {
        return;
      }

      let set = {
        year: e.detail.year.toString(),
        month: e.detail.month.toString(),
        day: e.detail.day.toString()
      }

      if (JSON.stringify(toSet).indexOf(JSON.stringify(set)) !== -1) {
        return;
      }

      wx.showModal({
        title: '提示',
        content: '您有' + that.data.signedRightCount + '次补签,是否进行补签?',
        success(res) {
          if (res.confirm) {
            wx.showLoading({
              title: '处理中...',
            })

            let info = {
              openId: app.globalData.openid,
              nickName: app.globalData.userInfo.nickName,
              avatarUrl: app.globalData.userInfo.avatarUrl,
              year: e.detail.year,
              month: e.detail.month,
              day: e.detail.day
            }
            api.addSignAgain(info).then((res) => {
              console.info(res)
              if (res.result) {
                that.setData({
                  signedDays: Number(that.data.signedDays) + 1,
                  signedRightCount: Number(that.data.signedRightCount) - 1,
                })

                toSet.push(set)
                that.calendar.setSelectedDays(toSet);

                wx.showToast({
                  title: "补签成功",
                  icon: "none",
                  duration: 3000
                });
              }
              else {
                wx.showToast({
                  title: "程序有些小异常",
                  icon: "none",
                  duration: 3000
                });
              }
              wx.hideLoading()
            })
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })
    }
  },
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Bug生活2048 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档