当前位置: 移动技术网 > IT编程>网页制作>CSS > 小程序 ----踩坑 ---安卓iOS兼容等

小程序 ----踩坑 ---安卓iOS兼容等

2019年07月26日  | 移动技术网IT编程  | 我要评论

关于小程序一些小功能的代码都在这个github上,感兴趣的可以去看看,
https://github.com/huihuijiang/miniprogram 目前有:列表左滑删除,拖拽浮标

 

一、小程序坑
1.scroll-view横向滚动的时候,包含文字图片等,元素错位,第二个元素掉下去;
hack:给子元素添加 vertical-align:top;

当使用scroll-view横向滚动时要注意几点:
父元素设置宽度,加上这两个样式overflow: hidden; white-space: nowrap;自元素设置成display: inline-block;vertical-align:top;

二、android 和 ios 兼容
1.不定宽高元素使用全铺背景图片,ios没有问题,安卓手机背景图片显示空白
hack: background-size:cover;(元素加上这一属性) 

2.安卓手机缓存严重问题

hack:在图片后再加上一串随机数

在wxs中:(有些ios手机不能识别小数的随机数,所以最好用整数  var random = math.floor(math.random() * 10 + 1) * 9;

3.ios不支持默认最小定时时间(0或不写)

4.截取字符串遇到表情,安卓没问题,ios会报错;
hack:(判断是否有表情)

      var reg = /\ud83c[\udf00-\udfff]|\ud83d[\udc00-\ude4f]/;
      var re = new regexp(reg);
      var en = str.slice(27, 29);
      if (re.test(en)) {
        title = str.slice(0, 27)
      } else {
        title =str.slice(0, 28)
      }
5.gettime()时候,ios必须把时间格式00-00-00转换成00/00/00

6.小程序获取胶囊按钮返回值(一直在变,目前的兼容代码

const self = this;
wx.getsysteminfo({
success: function (res) {
self.globaldata.phonexh = res.model.indexof("iphone x");
var menubutton = wx.getmenubuttonboundingclientrect();
//导航栏高度
self.globaldata.totaltopheight =
menubutton.height == menubutton.bottom ?
menubutton.height :
res.model.indexof("iphone") == 0 || (res.platform == 'android' && res.version == '7.0.3') ?
menubutton.top + menubutton.height + (menubutton.top - res.statusbarheight) :
menubutton.top + menubutton.height + menubutton.top + res.statusbarheight
//状态栏高度
self.globaldata.statusbarheight = res.statusbarheight;
//标题栏高度
self.globaldata.titlebarheight = self.globaldata.totaltopheight - res.statusbarheight;

}
})

7.ios使用overflow:auto;滚动会卡顿

hack:
-webkit-overflow-scrolling: touch

8.转发到微信列表的转发信息卡片图,ios当图片尺寸不对时,会出现空白,安卓会自动截取左上角

9.ios橡皮筋事件
hack:在page.json文件中
"disablescroll": true

10.ios短时间多次扫码进入不会执行onload

11.new number()强制转换结果为undefined
hack:用parsefloat
12.ios图片加上阿里云编辑参数加载失败
hack:binderror事件中对src重新复制,记得带上随机数,不然会因为路径一样不请求,有时候不是一次就能重新请求成功的,所以下一次获取的时候记得去掉随机数

loadimgerror: function (e) {
console.log("图片加载失败")
this.setdata({
src: e.target.dataset.src.split("?")[0] + '?' + math.floor(math.random() * 10 + 1) * 9
})
},

 

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网