2019小程序高校赛 -- 云开发实现双人互动打卡、分享、激励小程序

WeApp – 2019小程序应用开发赛总结

2019 — 中国高校计算机大赛 微信小程序应用开发赛 参赛做品。前端

部分真实信息已经隐藏。web

前端采用小程序原生开发
后端采用小程序云开发
部分组件化,自定义组件较多数据库

我学到了什么

1. 小程序云开发的 优势/缺点

在以前的开发中,通常都是用ThinkPHP去开发一个后端api,而后给小程序调用。这是最传统的作法,可是对于我的开发者来说,一个月的时间去兼职完成一个完整的小程序,仍是很是累的。因此小程序云开发可以极大加快我的开发者的进度。(官方发过一篇文: 1个开发如何撑起一个过亿用户的小程序)小程序

小程序提供的后端

云存储
对外开放能力有限,文件url为 cloud:// 开头,能够存储下载多重类型,同时image, audio, video 等容许直接调用云存储的文件 ( cloud://xxxxxx)

云数据库
为非关系型数据库,想要联表查询的话,嘿嘿你懂的。每一条数据自带_id和_openid字段,云数据库容许的权限有:

微信小程序

云函数
, 说实话一开始我不知道这个有什么用,直到最后我须要删除、更新特殊信息,以及调用微信公众平台api时发现了它的妙处。

例若有这么一个需求:甲发送了一篇文章,除了全部用户能够查看以外,她的女友乙能够删除或者修改这篇文章的内容,这就涉及到修改其余人建立的数据,这个时候上图中云数据库的权限是彻底不够用的。可是在云函数中能够实现上述功能。api

另外若是我须要发送模板消息,或者调用其余微信公众平台官方api。这个时候若是在小程序中直接网络请求会被限制。因此能够在云函数中去操做。服务器

同时云函数支持定时任务。微信

2. 我的/企业开发者帐号的区别(我的开发者不能作什么)

详细阅读开发文档以后,基本就能够总结出来。网络

我的开发者不容许使用支付功能。
我的开发者不容许使用web-view组件 (相似iframe功能)。

上述功能对企业开发帐号不作限制。

另外,在产品上架的时候也会遇到一些局限。
好比在下方个人做品中,我涉及到了我的日记功能,还有添加习惯,添加奖励等功能,这些在上架的时候,我的开发者是会受到限制的,下面是小程序官方发来的审核信息。

你好,你的小程序涉及用户自行生成内容的发布/分享/交流,属社交范畴,为我的主体小程序未开放类目,建议申请企业主体小程序。

另外个人打卡功能很是依赖推送功能,可是小程序自己很局限。原本想参考其余打卡提醒类小程序的作法,经过微信公众号的方式去提醒,结果发现我的只能申请订阅号,订阅号的推送通知都被折叠起来了,因此基本起不到提醒的做用。

3. 自定义组件中遇到的问题

a. 自定义tabBar

经过官方的方式自定义tabBar时会发现存在 tabBar 跳动的问题,并且大部分时候会错位,也须要在每一个页面的 onShow() 里面去设置参数。

能够经过components的方式去自定义tabBar,这里我模仿了某APP,实现了一个自定义tabBar,没有出现上述问题。

b. 自定义toast

自定义toast相对简单,经过components的方式便可。可是须要注意一个问题就是,当页面中出现textarea等官方控件时,自定义组件的层级永远都比这些特殊组件低。很难解决覆盖问题。

4. 对小程序的部分幻想

推送功能:

这是我目前实现的推送功能:

一开始我对这种模板消息充满了各类期待,后来发现对于小程序它是一个基本无关紧要的东西。

首先要在用户点击form表单里面的按钮时,获取一个formID, 而后经过用户的openID和formID去给用户发送模板消息。

这里有几个问题:

  1. 必须是点击form表单里面的按钮才能够生成formID;
  2. 每一个form只能生成一个formID。 网上有那种一个form里面嵌套几十个button的方式去一次性获取多个formID,该方法已经失效。
  3. formID和openID关联,由谁产生的formID,就只能给谁发送模板消息
  4. 一个formID只能使用一次,有效期7天。

目前网上有提供小程序推送的服务商,看了看作法,大部分就是经过在页面中藏表单,或者项目中的大部分按钮在都换成form表单的方式,在点按的同时获取一个formID, 而后在合适的时机将收集到的formID上传到服务器存储。

个人作法是在天天初次打开的时候,出现一个早上好的提示,用户点击按钮获取formID,而后在小程序进入后台的时候,将收集到的formID上传到服务器。

项目名称

xxxxx Daily

“中文别名: xx平常”

项目介绍

xxxxx Daily 是一款提供

双人互动
打卡,设置奖励,分享平常的小程序。

与目前市场上存在的大部分习惯平常类应用不一样的是,咱们更但愿互相绑定的两个用户之间去完成一些平常活动。例如在完成本身的每日任务时,能够查看对方的打卡进度,提醒对方及时完成任务;或者能够根据任务为对方制订一套奖励计划,鼓励对方按时完成任务。另外,你能够在广场记录当天完成的任务,发生的故事,这能够只在你与同伴之间分享,也能够设置容许其余人阅读。

另外,xxxxx Daily 虽然更侧重于两个用户完成绑定后使用,可是其中的全部功能也均可以一我的完成。你能够本身打卡,本身给本身设置奖励。

在第一次使用本小程序时,你能够设置一个分享海报,邀请小伙伴与你进行绑定。绑定的双方也能够随时解除关系。

功能介绍

习惯

  • 编辑习惯列表
  • 查看本身/对方打卡进度
  • 打卡

    • 完成本身的任务
    • 提醒对方打卡
  • 查看打卡记录

奖励

  • 查看进行中/已结束奖励
  • 为本身/对方添加奖励

广场

  • 大厅/我的中心 文章列表
  • 添加文章

设置

  • UI设置
  • 绑定关系管理

团队信息

  • 学校: xxx

  • 组员:

    • xxx
    • xxx


详细功能介绍

由于本小程序既可单人运行,又可双人交互,因此在下方的介绍中,除特殊说明外,全部功能都是在双人绑定的状态下运行。

详细介绍

  1. 登陆
  2. 我的中心
  3. 设置
  4. 邀请好友
  5. 习惯操做

    1. 添加习惯
    2. 我的打卡
    3. 查看对方习惯
    4. 提醒对方打卡
    5. 查看对方打卡记录
  6. 广场

    1. 添加文章
    2. 文章浏览
  7. 奖励

    1. 添加奖励
    2. 查看奖励

1. 登陆

新用户使用指南

2. 我的中心

3. 设置

4. 邀请好友

对方收到的样子

5. 习惯操做

A. 添加习惯

点击中间添加按钮,选择添加习惯

能够为习惯选择图标,设置名称, 设置每周何时打卡,下方能够选择截至时间。

选择截止时间

B. 我的打卡

在 “今天” 页面点击习惯名可打卡

再次点击则取消打卡

C. 查看对方习惯

在“今天”页面顶部点击对方可切换视角

点击后,下方变成对方的习惯列表。

D. 提醒对方打卡

切换到对方视角,点击对方未完成的任务,便可发送提醒。


小程序卡片消息提醒

当没法发送卡片消息时,须要手动分享给对方

E. 查看对方打卡记录

当点击对方已完成的任务时,能够查看对方打卡记录

点击查看详情

6. 广场

A. 添加文章

能够上传照片

设置查看权限 (咱们: 只容许本身和对方查看。 全部人: 任何人可见)

B. 文章浏览

7. 奖励

A. 添加奖励

能够给本身或者对方添加奖励

无期限习惯能够设置打卡次数。

有期限习惯会自动计算剩余天数。

B. 查看奖励

查看奖励详情。(打卡记录仅从奖励设置当天开始)

相关文章
相关标签/搜索