百度小程序的不一樣:ios
1: initActive從onload放到onready中git
2: bindtap='{{childTickeData.freeadd?"childticket":""}}',語法錯誤。會致使頁面加載不出來,並且也不報任何錯。小程序
3:使用搬家工具,支付api名稱轉換不對應,仍是微信的,應該改爲百度的。api
4:自定義屬性不能出現null或者「」,否者默認爲true數組
5:給圖片的src屬性賦值,使用了三元運算符,src不能用「」,否者圖片不換微信
6:input輸入框與其餘元素若是在同一區域,則同一區域的其餘點擊事件無效,建議不要重合。若是是type=「number」,在重複移除焦點獲取焦點以後,輸入框的值會消失,可以使用bindfocus從新給輸入框賦值網絡
7:s-for:應該爲數組,數字無效ssh
8:工具
var lettercity_success = function (data) { if (data.length != 0) { var catchdata = data.slice(0, 2); var queryshowcitys = []; for (var i = 0; i < data.length; i++) { var param = that.clone(data[i]); if(param.departures.length>3){ param.isshowall = false; }else{ param.isshowall = true; } param.departures = param.departures.slice(0, 3); queryshowcitys.push(param); } that.setData({ lettercityarr: data, queryshowcitys: queryshowcitys }); } else { that.setData({ lettercityarr: [] }); that.setData({ islettercityshow: false }); } };
在同一個方法中,如代碼中若是要分別用data和queryshowcitys 給兩個屬性賦值,queryshowcitys 獲取值最好使用clone的方式。即便先用setdata給lettercityarr賦值,再執行邏輯給queryshowcitys指賦值,也不行,依然會形成data的值發生改變。如下是clone代碼:this
const clone = function (data) { let model = {}; for (let item in data) { console.log(Object.prototype.toString.call(data[item])); if (data[item] instanceof Array) { model[item] = new Array(); for (let i = 0; i < data[item].length; i++) { model[item].push(this.clone(data[item][i])); } } else { model[item] = data[item]; } } return model; };
9:頁面傳值,考慮對值使用encodeURIComponent編碼,好比傳帶有http://,若是不使用編碼,則在另外一頁面接收值會成爲http:/。
10:傳參數不要使用scope字段,scope,百度小程序頁面跳轉自帶此參數
11:在ios系統中,網絡請求的狀態碼爲異常的時候,好比500,550,百度小程序會對返回的結果作處理,看不到服務端返回的具體錯誤信息。
12:map:經過網絡請求拿到座標,再將地圖中心點設置此座標。須要設置show-location="false"。
在ios系統中還須要處理,bindupdated="updatedMap",地圖加上這個事件,在updatedMap方法中判斷一下當前地圖中心位置是否和預期同樣
if(this.ischeckedmapcenter==true){//是否檢驗過中心位置準確 return; } var mapCtxget = swan.createMapContext('myMap'); var that = this; mapCtxget.getCenterLocation({ success: function (res) { if (res.longitude != that.data.curgeocodes.longitude || res.latitude != that.data.curgeocodes.latitude) { var getlongitude = that.data.curgeocodes.longitude; var getlatitude = that.data.curgeocodes.latitude; that.setData({ "curgeocodes.longitude": getlongitude, "curgeocodes.latitude": getlatitude, "ischeckedmapcenter":true }); } } })