微信小程序和百度小程序開發的一些不一樣點

百度小程序的不一樣: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方法中判斷一下當前地圖中心位置是否和預期同樣

  1. 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
    });
    }
    }
    })
相關文章
相關標籤/搜索