前言
之前有给小伙伴们承诺过一个开源一个小程序,今天开始开源一个部署上线的打卡小程序:一见打卡。其实我之前开源过一款叫 铁道游击队 的小程序,Github 地址:https://github.com/inspurer/CampusPunchcard
,其主要功能是-
类似论坛,可发布图文内容,并接受评论、回复。
-
每天在一定时间段内打卡,打卡成功可换算积分,积分实时展示在当日榜上。
-
跑步也可换算成积分,且换算规则男女有别。
https://github.com/inspurer/CampusPunchcard
,虽然仓库相同但是文件夹不同,注意区分一下。可能加载得很慢,是 Bomb 服务器的问题,可先跳过,最后再尝试。
从下载到上线
首先在 Github 上下载这个小程序的源码,可以通过 Git 命令git clone https://github.com/inspurer/CampusPunchcard
下载;没有安装 Git 的同学也可以直接在网页上下载源码压缩包。接着注册一个微信小程序账号,注册地址:https://mp.weixin.qq.com/wxopen/waregister?action=step1
,注册成功后登录后台获取 appID,这是一个小程序的唯一标识。安装好小程序开发者工具,下载地址:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
。用开发者工具打开刚刚下载的源码。
注意这里的 appID 一定要换成你自己的小程序 appID,不然后面有些操作无法进行。打开小程序之后,你会发现运行报错,大致意思是说域名不在合法列表,这就需要我们去微信小程序后台配置了。本小程序的后台采取了托管服务,后端采用了 Bomb 云托管。所以必须在后台配置 Bomb 的服务器域名。
Bomb 云和小程序的认证是双向的,我们同样需要在 Bomb 云后台(https://www.bmob.cn)配置小程序信息。注册并登录 Bomb 云后台,新建一个应用,然后在应用配置里配置小程序的 appID 和 appAppSecret ,表明这个 Bomb 云应用将要和哪一个微信小程序绑定。
Bomb 云应用,说白了就是一个云端的数据库,所以我们下一步要做的是在 Bomb 云后台配置好数据库表的结构。
如上图所示,数据库一共有四个表,_User 表是应用新建时候自带的,其默认有几个字段,不过我们还需要在 _User 表中新加 nickname(String),password(String),sex(String),newsnum(Number)和score(Number) 字段。添加字段只需要在上图的添加列点击,然后配置列名和列的类型即可。其它三个表的组成分别是:表punch | punch表 |
---|---|
字段名 | 字段类型 |
avatar | String |
nickname | String |
user_id | Pointer |
newsnum | Number |
score | Number |
date | Stirng |
time | String |
Pointer 是 Bomb 云定义的指针类型,从一个表映射到另一个表。
表invitation | invitation表 |
---|---|
字段名 | 字段类型 |
invitor | String |
invited | String |
inviation 是一个弱实体集,表明了邀请人和被邀请人的二元关系。
表advise | advise表 |
---|---|
字段名 | 字段类型 |
username | String |
advise | String |
这样,我们就能在小程序开发者工具中成功运行了,然后提交代码至后台,并在后台提交至审核队列,待审核通过就能成功上线了。
Q & A
Q: 怎么在小程序端访问 Bomb 云数据库?A:Bomb 云专门提供了小程序提供的 SDK,我们只需要把 SDK 集成到我们的小程序中(下载下来的代码已经集成好了),然后根据 Bomb 云提供的 API 文档就能完成对 Bomb 云数据库的增删改查了。Bomb 云小程序文档地址:http://doc.bmob.cn/data/wechat_app_new/index.html
Q: 为什么一见打卡小程序网络加载特别慢?A: 我们知道,微信小程序推出了云开发,这对 Bomb 云这种提供后端服务的公司产生了冲击,我刚部署 Bomb 云的时候微信小程序还没有云开发,访问速度也挺快的,最近几个月来 Bomb 云访问特别慢,估计是业务不佳导致的服务器带宽的缩减,所以现在我只是给大家演示了部署小程序的流程,并不推荐在小程序中使用 Bomb 云,或者 leancloud 云,当然,如果你自己写的 Android 或者 ios 客户端需要后台支持的话,使用 Bomb 云(其实也有 VIP 套餐)会大大缩减你的项目周期。后话
跟小伙伴们说说下一步的打算。首先,将 Bomb 云替换成小程序云开发,因为小程序云开发的可用性、稳定性比小程序 Bomb 云开发强太多了,替换其实难度不大,就是小程序端 api 的替换,不过特别费时间。
再者。下一个开源的小程序是一款新闻阅读类的小程序,新闻的来源,我效仿了某字节的做法,采用爬虫抓取存进数据库,然后再在小程序上展示出来,其功能大概包括:用户登录注册、文章评分、文章推荐、文章搜索、高分文章高亮显示、富文本阅读体验,文章分组、用户订阅分组等十几个功能,敬请期待。
如果你还有什么好的建议,欢迎留言评论。