全栈项目实战 - UniApp微信小程序

Posted by boredream on June 12, 2022

以下是一个安卓开发者角度,首次尝试小程序端开发,从开始学习到发布上线的经验分享。

不同于安卓尝试SpringBoot,语言相同但项目架构不同。安卓开发小程序的话,属于项目架构相似,语言不一样,但还是可以很快上手。

我选择了使用UniApp方案,基于Vue可以顺便学习之~

模块功能

微信开发不像服务端或安卓,直接AndroidStudio IDE新建项目即可。需要先去微信开放平台申请个账号,认证下个人信息,再创建项目获取key。之后下载微信官方小程序的IDE和UniApp的IDE HBuilderX。前者基本上算是个运行环境,只用它的小程序虚拟机,代码编写主要在后者上,可以修改下快捷键便于开发。

环境搭建好后就是创建项目了,相比于客户端其实只是语言不同,思想上差不多,大部分功能都是页面里先写布局,然后布局里给需要的组件加上点击监听做对应动作等。这一块网上找个教程稍微看看就能上手了。不太一样的地方在于,UniApp或者说Vue是声明式UI编程,和安卓原本的命令式不太一样。如果你安卓用过Compose UI相信会很快理解。

微信登录

业务流程

  1. 小程序客户端调用微信登录,拿到用户登录凭证code后发给服务端。
  2. 服务端获取code后,再调用微信接口用code获取openid和session_key等信息。
  3. 服务端利用openid作为唯一凭证,去自己用户表里找,如果没用户的话注册新建一个,有的话获取对应用户再生成token返回给客户端。
  4. 客户端保存token作为凭证继续访问其他接口,服务端校验ok的话就放行,不ok的话提示客户重新登录。

实现方案

按微信文档来即可。

游客功能

现在微信审核比较严,如果你的应用还和传统大部分一样,必须登录后才能看到后续页面,微信是不给审核通过的。官方要求是必须要让用户先看到大部分功能,再去决定是否注册,因此大部分模块都应该支持用户以游客身份登录,使用用户相关功能时再去引导登录。

信息校验

同样也是提交小程序审核时被驳回后才知道的,你应用里发布的所有信息类文本,如用户昵称、用户发布的信息等,都需要你在发布前调用下微信提供的信息审核接口,防止用户发一些暴力色情等的敏感信息。根据微信文档,在服务端数据入库前调用msg_sec_check接口即可。

文件上传

如果应用有图片上传功能,需要接入七牛云,获取token接口放在服务端,然后客户端利用七牛云SDK进行上传,成功后将url保存到服务端即可。要注意的是,小程序里所有请求域名都要在微信开放平台备份且必须要https的,所以需要给七牛云也准备好自定义域名,以及配置对应ssl证书。

部署流程

代码开发编译完成后,在微信小程序IDE上点击上传,再去微信后台将该版本提交审核,输入基本信息即可。第一次审核会严格一些,后续小版本更新会快一些。如果有驳回的话根据提示修改就行;如果是让你改成企业版认证。。。那就再次提交加入些原因说明,可能就过了。审核通过后,点击上线即可在微信小程序里搜到你的应用了。