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. 查看獎勵

查看獎勵詳情。(打卡記錄僅從獎勵設置當天開始)

相關文章
相關標籤/搜索