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必定要用到条件编译这个方法。在项目中用到了不少不少关于条件编译的,分别对每一个平台操做在接下来的遇到的问题会一一说出。vue

1.代码编译以后react

第一次编译每一个平台的小程序,就会发现,头条小程序app.js文件,少引入了三个重要的文件,并且app.json配置文件也没有,不管怎么编译都无动于衷,最后没有办法,只有把其余代码直接拷贝,而后从新运行,才生效ios

 2.官方api方法json

在项目中会用到各类api来协助开发,可是你会发现,好多api对支付宝小程序不支持,这个地方就有一个坑了,头条小程序选择上传视频,经过调用uni.chooseVideo提供的的api,在安卓和ios展现返回的效果彻底不同,只有编辑器没有啥问题。。。小程序

 

 

 经过上面这些代码,实现上传视频后端

  在ios手机上responent.tempFilePath,给咱们返回的是一串路径,可是后面拼接 了一串字符串 http://127.0.0.1/file/2019/12/6/02566464616,mp4?sihvishhhis这种格式。可是咱们发生请求的时候,后台是不接受?后面的字符串,致使每次上传返回的视频微信小程序

  路径都不能播放,必需要截取掉,要么就是前端截取要么就是后端截取过滤掉,api

  在安卓任何一个机型,只要是安卓机型,上传图片没有啥问题,可是只要帮你上传视频,给你返回的本地路径竟然没有后缀名,返回以下面的格式,这就后台怎么知道,我上传的是什么东西,也没有任何标志,根本无法区分,而后我就赶忙去头条小程序发布 一个论坛,提出这个问题,具体提问的请看这个连接https://forum.microapp.bytedance.com/mini-app/posts/5de87002725dee020c518e69,客服说微信

   说的都是说,仍是须要本身和后台最后研究研究,才实现的,

  

   其实这个问题能够说是他们官方文档存在的bug,我上传视频,你最起码要返回我上传的是啥格式,啥都不返回,咋知道,最后这个问题,你须要和后台沟通一下,让后台判断一下,给他发送 的就是这种格式,经过后台返回,虽然不带路径,可是能打开。

  或者就是后台返回的是,给你加上mp4格式,前端不能本身手动加,否则不行。

返回最后的结果

  上传完后台返回的明明是咱们想要的json格式,但是恰恰头条和微信就是给你返回字符串,须要本身JSON.parse转义一下,可是百度就是不须要,返回的就是咱们想要的格式,这个须要注意一下。

  

3.经常使用的条件编译

  在uni-app这个还算是很不错的,能够对每一个平台进行条件编译,编写不一样的代码,发布不一样的平台

 

   经常使用的值

  

 

 

最后在说一下,就是上传图片的时候,只有微信和百度支持,头条不支持base64,仍是选择文件流的方式上传

4.百度小程序onShow方法只执行一次

这个就比较难受,在百度小程序onShow方法只执行一次,查阅了资料才知道,这是官方存在的bug,已经修复了,可是没有更新最新的版本,感受也很快了就会发版的,这个问题须要把本身的开发工具升级最新版本,就能够了

 

  选择最新的版本

 

 

5.实现上拉加载和下来刷新功能

几乎每一个项目都会用到上拉加载和下来刷新这个功能,因为每一个页面都用到,经过使用movable-area去实现上拉加载和下拉刷新,结果官方说明头条不支持,你们能够去插件市场,里面好多插件可使用的

只能分平台处理

 

 

uni-app确实是的一套代码能生成多个平台,可是里面的坑须要本身慢慢研究,缺乏的东西仍是不少,没有办法,只有慢慢踩坑,积累多了,才能好好运用好