一、默認使用uni-app創建的css
有個默認引用的css(uni.css),里面是一些uni- 標簽用到的默認css;
其中有個
view{
font-size:32upx;
line-height:1.4
}
這個line-height的默認會在某些特殊情況下影響你的樣式,記得刪掉或者是在我們的view里給上這個屬性。
二、一套css兼容很多配置需要細心
uni-app自帶的upx會自適應,但在ipad,或者更大的尺寸是就會發現,字體,行距,會越來越大,樣式上會變得很丑;
我的解決方案是:
1.橫向布局用百分比與flex布局,盡量不用upx;
2.全局的字體大小等用px;
3.豎向布局行距等用px,其他自動撐開;
即便是這樣,在測試了很多款手機(安卓和ios)+ (自帶,uc,微信,qq,谷歌)等多款瀏覽器,依然會發現某些個別的手機樣式錯亂,這個時候需要單獨再調試,像我的這個發生在ipone8的微信瀏覽器上
三、聲音Audio
uni-app官方推薦let innerAudioContext = uni.createInnerAudioContext();的這種寫法,實測,在華為手機自帶瀏覽器+安卓手機的uc瀏覽器會出現bug,導致無法自動播放,播放后無法播放第二次。。。,在小程序里bug相對較少,畢竟平台微信已經做了統一;
我的解決方案是:
1.做了條件編譯,在小程序用之前let innerAudioContext = uni.createInnerAudioContext();這一套,在h5用下面這一套:
this.innerAudioContext = new Audio()
this.innerAudioContext.src = that.src
this.innerAudioContext.play()
通過UI設計讓蕪湖觸摸或者點擊,來達到無感知的自動播放效果,經測試完美實現所需效果;
四、swiper組件
默認的組件是這樣的
<swiper class="swiper" :current="current" skip-hidden-item-layout="true" :indicator-dots="indicatorDots" @change="currentChange"
indicator-active-color="#2CC0D6">
<swiper-item v-for="(item,index) in examList" :key="index">
</swiper-item>
</swiper >
測試,在安卓手機正常,ios出現滑動錯亂的問題;
我的解決方案是:
1.js判斷是否為ios,若不是,采用原來的;若是,棄用swiper,放棄滑動效果,改用按鈕點擊實現;