零、关于开发思路
(一)拿到工作任务,先理清楚需求
1.逻辑部分
不放过原型里说的每一句话,有疑惑的部分该问产品/测试/之前的开发就问
2.页面部分(含国际化)
整体看过需要开发页面的原型后,分类一下哪些组件/样式可以复用,直接提取出来使用
(时间充分的前提下,不要一味先复制粘贴再提取;要先提取直接使用)
开发过程中就国际化,可以仅把中文国际化做了zh.json,英文的最后找ai直接翻译一下给到en.json文件,这样一定程度上节约了时间,并且准确率极高
(否则容易出错-如用cursor直接最后国际化页面里的文本,漏提取or直接中文文本改错,等等问题)
3.swagger接口部分
遇到无厘头但可能相关的接口,问后端!
比如下面这个,登陆的时候勾选同意xxx协议,登陆成功后就要调用这个“用户协议操作记录接口”给到后端,后端记录一下。
(二)理清需求后,调研哪些点可能有阻碍
比如微信小程序权限-系统级别、微信APP级别、微信小程序级别(弄清楚产品要求各情况怎么处理)
比如原后端上传图片接口是否适配微信小程序uploadFile()方式
这些地方都要弄清楚,避免走弯路,尽早将可能遇到的困难问题摆出来,找更有经验的开发or百度or官网寻找解决方案,跟pm明确技术风险,并合理安排时间
避免由于忽视,前期困难点未理清楚导致错误排期and前后端走弯路
一、关于oss图片上传
(一)上传图片本身接口限制
1.微信小程序上传前提
微信小程序本身不直接支持原生的 FormData
对象,但可以通过以下几种方式实现类似 form-data
格式的文件上传功能(这里使用了第一种官方推荐的,其他两种没尝试)
2.具体场景分析
原接口1:APP司机注册
POST /xxx/driver-app/v1/users
表单和上传图片文件都在一起用一个接口(post、formData)上传,2个参数,单文件
这里虽然都是单张图片,但是要分别传人像照和国徽照,且非必传
而uni.uploadFile(obj)的obj中,filePath/files必填,不能为null或者“”
(这里我尝试了用一个固定的下载了线上图片得到的临时地址,可以实现,但并不推荐)
原接口2:APP端运单货物操作: 提货、确认到达
POST /xxx/driver-app/v1/waybills/{id}/actions/loadings
表单和上传图片文件都在一起用一个接口(post、formData)上传,2个参数,多文件数组
(这里swagger写的有问题,事实上是数组,且必填)
这里传的是俩file数组,更不能直接用这个接口了。
后端尝试两种解决:
第一种:oss直传(未采纳)
刚开始后端直接