做了有两年的移动端,其中也遇到各种各样的问题,想着专门写一篇博客做个收集,也便于以后查找
h5
网页上下滑动问题
方法一,touch-action
touch-action: pan-x; // 只允许横向滚动
相关文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/touch-action
方法二,禁止touchmove事件
1 | window.addEventListener('touchmove', function (e) { |
input type=”file” 部分安卓机没有显示文件和摄像头的选项
加上accept=”image/*”
ios 部分机型输入完成后软键盘关闭键盘不会下移
解决方法
在对应的blur事件加如下代码,注意,如果此方法无效,还需要在对应的父元素加scroll方法(一般应该是最外层的父元素)
1 | setTimeout(function(){ |
https://blog.csdn.net/a460550542/article/details/84999408
canvas 保存图片问题
(需测试)
toBlob在微信h5无法保存,本机浏览器可以,toDataURL可以。
小程序webview用toBlob有成功过的案例,同时用toDataURL部分机型失败
ios input样式问题
- ios的input默认有
border-radius
和-webkit-appearance
样式,用border-radius: none
和-webkit-appearance: none
清除 - ios中input的disabled模式,整体颜色会变浅,如果需要保持原样式使用
readOnly
属性更好
ios选中图片文字问题
ios中图片默认可以选中,文字可以复制,并且点击一个链接或者通过Javascript定义的可点击元素时,会出现一个半透明的灰色背景
1 | div, img { |
长按保存,弹出选项框事件
安卓触发touchcancel事件,ios触发touchend事件
ios z-index失效问题
小程序
图片排版中间出现空隙
设置font-size: 0;
或者设置image的display
为flex
showLoading和showToast
- showToast和showLoading是冲突的,会显示后设置的那一个
- showLoading的时候加上
mask: true
更好
wx.setStorageSync
在某些机型可能出现问题,使用重要数据时要仔细验证
小程序自动更新
小程序默认加上更新代码,以免更新小程序时有缓存
其他
- 做测试的时候注意小程序多个版本,比如从模板消息进入小程序,点击三个点图标可以查看小程序版本
- access_token每天有调用次数限制,需要做缓存
- 在进行用户授权/登录前要先让用户体验小程序或者说明小程序的功能,否则审核可能不通过
- 页面分享注意设置链接,以免用户将不能直接打开的页面分享出去
其他
时间转换问题
Date.parse(new Date('2020-09-24 12:00:00'))
这行代码在安卓下输出1522382400000
,在ios下输出NaN,ios中要用YYYY/MM/DD的形式,通用代码:
1 | function formatTimeStamp (time) { |
长短屏适配
微信最短屏750_1126,今日头条最短屏:750_1096
#