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手機上responent.tempFilePath,給我們返回的是一串路徑,但是后面拼接 了一串字符串 http://127.0.0.1/file/2019/12/6/02566464616,mp4?sihvishhhis這種格式。但是我們發生請求的時候,后台是不接受?后面的字符串,導致每次上傳返回的視頻

  路徑都不能播放,必須要截取掉,要么就是前端截取要么就是后端截取過濾掉,

  在安卓任何一個機型,只要是安卓機型,上傳圖片沒有啥問題,但是只要幫你上傳視頻,給你返回的本地路徑居然沒有后綴名,返回如下面的格式,這就后台怎么知道,我上傳的是什么東西,也沒有任何標志,根本沒法區分,然后我就趕緊去頭條小程序發布 一個論壇,提出這個問題,具體提問的請看這個鏈接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確實是的一套代碼能生成多個平台,但是里面的坑需要自己慢慢研究,缺少的東西還是很多,沒有辦法,只有慢慢踩坑,積累多了,才能好好運用好


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM