技術棧
uni app,vue3,uview puls,map…
nvue
因為項目中有地圖,要使用到map標簽,所以考慮用原生nvue開發,它是有痛點的,首先瀏覽器不支持,我是要開發ios和Android,所以只能在模擬器上運行,模擬器上就沒法查看元素了啊,可想而知;其次nvue的支持性本來就不好,很多樣式根本不支持,這對于前端來說是痛苦的,所以該總結也尤為重要,可以規避很多問題及無厘頭的查找原因。
能省則省,別人總結的我就不寫了
1、nvue頁面用法uniapp
2、因為uni是跨端,所以跟小程序也有很多相似的通病:小程序開發中遇到的問題,不過這個是我很早之前寫的了,不完善
其它我遇到的:
1、圖片要用image標簽不是img(android沒問題,ios就較真了),寬高都要設置,因為有默認的寬高,不能自適應。
2、up-button背景色要在元素上設置color屬性(支持漸變),需要設置寬度
3、flex布局必須加flex-direction: row;
4、up-modal下面包的內容一級view class必須是slot-content,不包或者不叫slot-content,
下面元素的樣式將不會生效(有class也不行),slot-content的寬度需要有文字(text)長度撐開,
如果沒有文案寬度將沒有,其他元素比如up-button寬度設置也無效,寬度不夠元素還會換行。
5、map在真機上渲染不出來,首先最主要的原因是配置沒有選Maps,其次模擬器我沒有自定義基座,所以你用自定義基座的話模擬器也出不來,更有利發現和解決問題
6、橫向超屏滾動
我有一個數組,需要遍歷展示多個,平鋪顯示,超屏左右滑動
nvue是不支持overflow: scroll的,首先可以借助組件
<scroll-view scroll-y="true" :style="{ maxHeight: 'xxrpx' }">......
</scroll-view>
// 或者
<swiper autoplay="false" style="height: xxrpx"><swiper-item v-for="(item, index) in List" :key="index">......</swiper-item>
</swiper>
我還用了一種方法,實現的效果有點復雜,代碼也寫的復雜,而且這個是我第一次搞,可能實現方式也不好,先不附上了,如果上面的方法不能解決你的問題,可以給我留言試下
ios上架
1、不能上來就讓用戶授權
本來設置的初始頁為首頁,但是因為首頁有地圖,需要獲取位置信息,所以一進來就會彈窗詢問用戶是否允許開啟位置信息,這不符合上架條件,所以最后改為登錄頁為初始頁
2、隱私政策、服務協議
不能少,比如登錄的時候:“我已閱讀并同意xxxxxx”,并且這兩個協議需要用iframe嵌套一個地址實現(寫一個html,然后發布到服務器,域名就有了),不是寫在項目頁面里,這個好像是在上架那里也需要把這個地址在那里配置(很多東西項目里配置過這里也要配,具體不清楚,我們是負責人配的),所以要這么弄。
3、登錄頁要有注冊
可以做一個假的,有一個接口控制注冊是否顯示,當在審核過程中注冊顯示,當審核通過注冊隱藏。
4、還有兩條我在HbuilderX的使用講到,截個圖
其他
1、接口跨域
雖然是app項目,但我開始是在瀏覽器上運行(因為好調樣式),但是接口請求跨域了,后面發現需要在模擬器上運行。
當時還遇到接口時好時壞,原來是封裝接口的時候timeout設置的時間太短
2、文字轉語音
看這篇看這篇:uniapp 播放文字 調用百度文字轉語音,并播放
當時我以為這個很簡單,結果找了兩天左右吧才實現,主要還是跨端原因吧,反正查的很多方法用到項目里根本用不了,undefined,為此我還下了語音播報插件也沒用
后來打算用百度那個,需要生成key的那種方法實現的時候,終于找到了,確實超簡單,雖然也是百度,但不用生成key了,為什么我一開始沒用key這種方式,因為說實話有點麻煩