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確實是的一套代碼能生成多個平臺,可是裏面的坑須要本身慢慢研究,缺乏的東西仍是不少,沒有辦法,只有慢慢踩坑,積累多了,才能好好運用好

相關文章
相關標籤/搜索