百度小程序的不一样: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 }); } } })