移动端项目中遇到的兼容问题,结合场景

bfcache问题:safari浏览器有痕模式下会缓存接口请求或一些数据,当返回时监听onpageshow事件
safari全屏兼容问题:分ios版本去做相应的处理
fix兼容问题:分场景处理,适当修改交互或者需求

场景1判断navigator.userAgent浏览器类型,在有问题的浏览里将fix替换为absolute,或者去掉fix定位
var rootClass = (ua.qq || ua.baidubrowser || ua.baidubox) ? 'm-search-full-QQ' : 'm-search-full';

.m-search-full{100%;height:100%;position:fixed;z-index:1030;top:0}
.m-search-full-QQ{100%;height:101%;position:absolute;z-index:1030;top:0}


阻止滚动
this.rootElement.on('touchmove', function(e) {
e.preventDefault();
e.stopPropagation();
});

场景2:浏览器底部fixed定位,输入弹出软键盘,底部会跟着一起,等软键盘消失,底部固定div并没有落回去,改交互,弹起软键盘时(监听input)隐藏固定底部的区域,收起软键盘(监听blur)时显示fix区域


背景音乐播放:audio标签在Safari浏览器不能自动播放,需要点击触发,微信浏览器里边可以自动播放

原文地址:https://www.cnblogs.com/afterwawa/p/8678793.html