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

2020-05-09 10:34:51 浏览数 (1)

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

背景

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

截图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('用户点击取消')
          }
        }
      })
    }
  },

0 人点赞