uni-app开发⼩程序⼊门到崩溃
最近⼀段时间公司要做⼀个⼩程序项⽬,还要⽀持,⼩程序,头条⼩程序,百度⼩程序。⼀套代码,实现三个平台。当时接到这个任务,就不知道怎么去下⼿,⼀套代码,分别要发布三个平台,赶紧就去上⽹了解这些东西,查看了,uni-app,taro,Chameleon这三个库,然后把每个都运⾏了⼀次,看⼀下⽂档。当我运⾏完Chameleon 这个项⽬的时候,直接就放弃这个了,滴滴公司开发的,⼀套代码,多端使⽤。主要是刚刚发布没有多久,官⽅实例太少,坑特别特别多。⽂档不全⾯,简直就是⽺⼊虎⼝,但是,看介绍不错,直接可以调⽤安卓和ios开发,⽀持热更新,项⽬集成app了Sdk。渲染能⼒还是⽐较强。对于taro这个多端框架,相⽐较Chameleon好⼀些,语法是基于react和⼩程序结合的,也有⾃⼰的⼀套ul框架。在物料市场,也有很多很多插件供参考使⽤,社区活跃度还可以的。最后说说uni-app,也是在项⽬中选择使⽤了uni-app,真是的以进⼊uni-app这个框架,就相等与调⼊虎⼝⼀样,踩不完的坑,写不完的bug,但是主要这个语法简单,基于vue,可以说会vue和⼩程序,就很容易上⼿,直接可以开发项⽬,
uni-app编写运⾏三个平台,只对⼩程序编译运⾏的是最好的,但是头条和百度,必须是⼿动打开才能可以,第⼀次编译也不⼀定能编译成功,编译之后,app.js⽂件丢三落四,还需⼈⼿动引⼊三个js⽂件,才可以。uni-app⼀定要⽤到条件编译这个⽅法。在项⽬中⽤到了很多很多关于条件编译的,分别对每个平台操作在接下来的遇到的问题会⼀⼀说出。
1.代码编译之后
第⼀次编译每个平台的⼩程序,就会发现,头条⼩程序app.js⽂件,少引⼊了三个重要的⽂件,⽽且app.json配置⽂件也没有,⽆论怎么编译都⽆动于衷,最后没有办法,只有把其他代码直接拷贝,然后重新运⾏,才⽣效
2.官⽅api⽅法
在项⽬中会⽤到各种api来协助开发,但是你会发现,好多api对⽀付宝⼩程序不⽀持,这个地⽅就有⼀个坑了,头条⼩程序选择上传视频,通过调
⽤uni.chooseVideo提供的的api,在安卓和ios展⽰返回的效果完全不⼀样,只有编辑器没有啥问题。。。
通过上⾯这些代码,实现上传视频
  在ios⼿机上pFilePath,给我们返回的是⼀串路径,但是后⾯拼接了⼀串字符串 127.0.0.1/file/2019/12/6/025********,mp4?sihvishhhis这种格式。但是我们发⽣请求的时候,后台是不接受?后⾯的字符串,导致每次上传返回的视频
  路径都不能播放,必须要截取掉,要么就是前端截取要么就是后端截取过滤掉,
  在安卓任何⼀个机型,只要是安卓机型,上传图⽚没有啥问题,但是只要帮你上传视频,给你返回的本地路径居然没有后缀名,返回如下⾯的格式,这就后台怎么知道,我上传的是什么东西,也没有任何标志,根本没法区分,然后我就赶紧去头条⼩程序发布⼀个论坛,提出这个问题,具体提问的请看这个链接,客服说
  说的都是说,还是需要⾃⼰和后台最后研究研究,才实现的,
  其实这个问题可以说是他们官⽅⽂档存在的bug,我上传视频,你最起码要返回我上传的是啥格式,啥都不返回,咋知道,最后这个问题,你需要和后台沟通⼀下,让后台判断⼀下,给他发送的就是这种格式,通过后台返回,虽然不带路径,但是能打开。
  或者就是后台返回的是,给你加上mp4格式,前端不能⾃⼰⼿动加,不然不⾏。
返回最后的结果
  上传完后台返回的明明是我们想要的json格式,可是偏偏头条和就是给你返回字符串,需要⾃⼰JSON.parse转义⼀下,但是百度就是不需要,返回的就是我们想要的格式,这个需要注意⼀下。
3.常⽤的条件编译
  在uni-app这个还算是很不错的,可以对每个平台进⾏条件编译,编写不同的代码,发布不同的平台
  常⽤的值
最后在说⼀下,就是上传图⽚的时候,只有和百度⽀持,头条不⽀持base64,还是选择⽂件流的⽅式上传
4.百度⼩程序onShow⽅法只执⾏⼀次
这个就⽐较难受,在百度⼩程序onShow⽅法只执⾏⼀次,查阅了资料才知道,这是官⽅存在的bug,已经修复了,但是没有更新最新的版本,感觉也很快了就会发版
的,这个问题需要把⾃⼰的开发⼯具升级最新版本,就可以了
  选择最新的版本
5.实现上拉加载和下来刷新功能
⼏乎每个项⽬都会⽤到上拉加载和下来刷新这个功能,由于每个页⾯都⽤到,通过使⽤去实现上拉加载和下拉刷新,结果官⽅说明头条不⽀持,⼤家可以去插件市场,⾥⾯
好多插件可以使⽤的
只能分平台处理
uni-app确实是的⼀套代码能⽣成多个平台,但是⾥⾯的坑需要⾃⼰慢慢研究,缺少的东西还是很多,没有办法,只有慢慢踩坑,积累多了,才能好好运⽤好
简易安卓app开发