最近公司開始做一些小程式專案,總結了小程式開發中遇到的一些坑,小程式新手,歡迎指點。
-
css裡不可是使用background做背景圖,在手機上不顯示;
-
如果頁面有超過四次的跳轉,不可以使用
wx.navigateTo()
方法,可以使用wx.redirectTo()
,在需要跳轉的標籤寫上open-type=“redirect”
。 -
如果有頁面底部有小程式自帶的tab切換,頁面上也有點選事件可以與之跳到同一個頁面,不可以使用
wx.navigateTo()
,需要用wx.switchTab
跳轉。 -
下拉重新整理:在需要的頁面的 json 中新增
{"enablePullDownRefresh":true}
該行程式碼,同時在頁面重新整理完成後新增:
wx.hideNavigationBarLoading() //完成停止載入
wx.stopPullDownRefresh() //停止下拉重新整理,防止在安卓手機下拉後不回到頂端
複製程式碼
- 儘量不要傳" "和"0"等值到後臺,小程式會預設為 null 或 undefined ;
- 彈出層,如果超過六個字,不可以用微信自帶的方法,要用:
//在頁面任意地方新增
<view class="ad_popError" wx:if="{{popErrorMsg}}">{{popErrorMsg}}</view>
複製程式碼
//在app.css中新增
.ad_popError{
background: #000;
color: #fff;
height: 58rpx;
line-height: 58rpx;
font-size: 24rpx;
text-align: center;
position: absolute;
left: 10%;
top: 50%;
width: 80%;
border-radius:5px;
z-index:3;
margin-top:-29rpx;
opacity: 0.6;
}
複製程式碼
//在js中新增方法:
ohShitfadeOut() {
var fadeOutTimeout = setTimeout(() => {
this.setData({ popErrorMsg: '' });
clearTimeout(fadeOutTimeout);
}, 2000);
},
複製程式碼
//在需要彈出的地方新增:
that.setData(
{ popErrorMsg: "提示語" }
);
that.ohShitfadeOut();
return;
複製程式碼
- 如果有需要進入頁面就重新整理的地方,介面路徑要寫在
onshow
裡,不需要重新整理的頁面寫在onload
裡,否則每次都重新載入會又慢又卡, 但是也不要把所有的介面都寫在onshow
裡會浪費流量。 - 跳轉頁面在 url 上帶引數大小寫問題:例如:標籤上的
data-headerImg=‘{{item.header}}’
,在 js 中,headerImg 被預設為 headerimg,不識別大寫字母。 - 如果用微信自帶的掃一掃功能跳轉到小程式的指定頁面,小程式規定只能新增50個路徑。
- 擷取後臺返回資料等,只能在 js 中進行操作,不能在 html 中擷取。
- 後臺返回list資料往頁面中賦值是,不可以用for迴圈進行賦值,需要用小程式的方法在html中寫
wx:for="{{items}}"
,如果在for迴圈中用setData進行賦值,頁面上顯示的是都是最後一條資料的值。 - 圖片路徑的反斜槓自動轉成正斜槓。
- css中
font-weight:lighter
,在 ios 中識別,(更細) 在 android 上不識別(正常) - 動態倒數計時要寫在onload裡。
- 微信本身的 Bug 引發的相容性問題有個現成的例子,就是
wx.request()
返回的狀態碼res.statusCode
的值在 iOS 下是 int 型資料,而在 Android 6.0.1 上卻是 String 型資料。更規範的方法是使用parseInt(res.statusCode) === 200
來實現。 - 微信暱稱是中文時,有時需要轉碼,
encodeURIComponent()
。 - 如果小程式只有開調式可以調取資料,這時要考慮程式碼裡的域名和設定域名是否一樣。