有的時(shí)候開發(fā)太急包吝,我們并沒有時(shí)間去仔細(xì)翻閱文檔,這時(shí)候偶爾就會(huì)遇到一些不好找問題的坑
記錄下我自己開發(fā)中遇到的坑
微信小程序
- 彈出層滾動(dòng)穿透
- 啟動(dòng)更新問題
- 比較小程序基礎(chǔ)庫(kù)版本號(hào)
- 設(shè)置上一個(gè)頁(yè)面的data數(shù)據(jù)
- 圖片寬高等比顯示
彈出層滾動(dòng)穿透
有時(shí)候會(huì)出現(xiàn)在自己編寫的彈出層中移動(dòng)手指源葫,頁(yè)面也會(huì)跟隨滾動(dòng)的情況诗越,解決方法如下
<view catchtouchmove="catchReturn">
<text>內(nèi)容</text>
<view>
catchReturn(){
return;
}
啟動(dòng)強(qiáng)制更新
有時(shí)候由于這樣那樣的不可抗力,版本提交會(huì)很頻繁息堂,這時(shí)候由于小程序的運(yùn)行機(jī)制嚷狞,用戶打開我們的小程序時(shí),有可能并沒有顯示最新的運(yùn)營(yíng)內(nèi)容
小程序冷啟動(dòng)時(shí)如果發(fā)現(xiàn)有新版本荣堰,將會(huì)異步下載新版本的代碼包床未,并同時(shí)用客戶端本地的包進(jìn)行啟動(dòng),即新版本的小程序需要等下一次冷啟動(dòng)才會(huì)應(yīng)用上振坚。
如果需要馬上應(yīng)用最新版本薇搁,可以使用 wx.getUpdateManager API 進(jìn)行處理。但請(qǐng)注意在使用時(shí)應(yīng)檢測(cè)基礎(chǔ)庫(kù)版本號(hào)渡八,做好兼容啃洋。
比較小程序基礎(chǔ)庫(kù)版本號(hào)
這個(gè)是小程序官方給的方法,網(wǎng)上查出來的一些直接用字符串比較屎鳍,parseInt 比較的方法是錯(cuò)的
function compareVersion(v1, v2) {
v1 = v1.split('.')
v2 = v2.split('.')
var len = Math.max(v1.length, v2.length)
while (v1.length < len) {
v1.push('0')
}
while (v2.length < len) {
v2.push('0')
}
for (var i = 0; i < len; i++) {
var num1 = parseInt(v1[i])
var num2 = parseInt(v2[i])
if (num1 > num2) {
return 1
} else if (num1 < num2) {
return -1
}
}
return 0
}
compareVersion('1.11.0', '1.9.9') // => 1 // 1 表示 1.11.0 比 1.9.9 要新
compareVersion('1.11.0', '1.11.0') // => 0 // 0 表示 1.11.0 和 1.11.0 是同一個(gè)版本
compareVersion('1.11.0', '1.99.0') // => -1 // -1 表示 1.11.0 比 1.99.0 要老
另:后續(xù)版本會(huì)在基礎(chǔ)庫(kù)中增加版本比較方法
設(shè)置上一個(gè)頁(yè)面的data數(shù)據(jù)
在頁(yè)面跳轉(zhuǎn)有些頻繁的時(shí)候宏娄,跳轉(zhuǎn)頁(yè)面填寫的表單數(shù)據(jù)需要傳回上一個(gè)頁(yè)面,如果不用緩存
let pages = getCurrentPages(),// 獲取當(dāng)前頁(yè)面棧
prevPage = pages[pages.length - 2]
prevPage.setData(data)
圖片寬高等比顯示
我自己試object-fit這個(gè)屬性在小程序中不生效
<image mode="widthFix"></image>