文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【H5】H5安卓、ios兼容性问题

2023-09-29 06:28

关注

一、H5兼容性问题

H5在安卓机型和IOS机型或者相同机型的不同浏览器中的某些样式会存在不一样的表现,所以需要解决相应的兼容性问题

二、IOS常见兼容性问题

1、IOS端兼容input光标高度

2、IOS键盘唤起,键盘收起以后页面不归位

changeBlur () {     let u = navigator.userAgent, app = navigator.appVersion;     let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);     if(isIOS){        setTimeout(() => {          const scrollHeight = document.documentElement.scrollTop || document.body.scrollTop || 0          window.scrollTo(0, Math.max(scrollHeight - 1, 0))          }, 200)     }}

3、IOS端h5页面上下滑动时卡顿、页面缺失

* {  -webkit-overflow-scrolling: touch;}

扩展知识:-webkit-overflow-scrolling是什么?

-webkit-overflow-scrolling 属性控制元素在移动设备上是否使用滚动回弹效果.

auto: 使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。

touch: 使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果。继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。同时也会创建一个新的堆栈上下文。

4、IOS移动端click事件300ms的延迟响应

5、IOS双击页面缩放禁止

(1)禁用双指缩放
document.documentElement.addEventListener('touchstart', function (event) {  if (event.touches.length > 1) {    event.preventDefault();  }}, false);
(2)禁用手指双击缩放
var lastTouchEnd = 0;document.documentElement.addEventListener('touchend', function (event) {  var now = Date.now();  if (now - lastTouchEnd <= 300) {    event.preventDefault();  }  lastTouchEnd = now;}, false);

三、微信浏览器常见兼容性问题

1、填写表单信息弹出键盘会把页面顶上去,键盘消失的时候页面不自动下来

解决方案:使用onblur方法在表单失去焦点的时候让页面滚动到最顶部。

2、去除移动端点击时的背景

* {    -webkit-tap-highlight-color: rgba(0,0,0,0);    -webkit-tap-highlight-color: transparent; }

3、去掉input框的默认样式

input {    background-color: transparent;    filter: alpha(opacity=0);     appearance: none;      -moz-appearance: none;    -webkit-appearance: none;}

4、音视频不自动播放

(1)先引入微信的JS-SDK
 
(2)然后在wx.ready中调用play方法播放
var audio = document.getElementById('bgmusic');    autoPlayAudio();    function autoPlayAudio() {        wx.config({            // 配置信息, 即使不正确也能使用 wx.ready            debug: false,            appId: '',            timestamp: 1,            nonceStr: '',            signature: '',            jsApiList: []        });        wx.ready(function() {            audio.play();        });    }

四、其他兼容性问题

1、在IOS手机上,绑定click事件到非button元素的元素上,IOS下不会触发

解决方案:元素样式添加 cursor:pointer

2、在IOS中li元素按下会有阴影效果

 -webkit-tap-highlight-color: transparent;

3、在IOS中,input会有内阴影

 -webkit-appearance:none;

4、IOS下取消input在输入的时候英文首字母的默认大写

5、禁止IOS弹出各种操作窗口

-webkit-touch-callout:none

6、禁止IOS和android用户选中文字

-webkit-user-select:none

7、禁止IOS识别长串数字为电话

8、禁止IOS手机识别邮箱

9、IOS系统中文输入法输入英文时,字母之间可能会出现一个六分之一空格

解决方案:可以通过正则去掉 this.value = this.value.replace(/\u2006/g, '');

10、阻止旋转屏幕时自动调整字体大小

html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 {-webkit-text-size-adjust:none;}

11、在移动端修改难看的点击的高亮效果,IOS和安卓下都有效

* {-webkit-tap-highlight-color:rgba(0,0,0,0);}

12、往返缓存问题

点击浏览器的回退,有时候不会自动执行js,特别是在mobilesafari中。这与往返缓存(bfcache)有关系。

解决方法 :window.onunload = function(){};

13、Input 的placeholder会出现文本位置偏上的情况

input 的placeholder会出现文本位置偏上的情况:PC端设置line-height等于height能够对齐,而移动端仍然是偏上,解决是设置line-height:normal

14、在IOS和andriod中,audio元素和video元素无法自动播放

element.addEventListener('touchstart',function(){    audio.play()},false)

15、消除 transition 闪屏

-webkit-transform-style: preserve-3d;     -webkit-backface-visibility: hidden;      

16、CSS动画页面闪白,动画卡顿

解决方法:1.尽可能地使用合成属性transform和opacity来设计CSS3动画,不使用position的left和top来定位2.开启硬件加速  -webkit-transform: translate3d(0, 0, 0);     -moz-transform: translate3d(0, 0, 0);      -ms-transform: translate3d(0, 0, 0);          transform: translate3d(0, 0, 0);

17、fixed定位缺陷

原因分析:

解决方案: 可用iScroll插件解决这个问题

18、calc的兼容性处理

CSS3中的calc变量在iOS6浏览器中必须加-webkit-前缀,目前的FF浏览器已经无需-moz-前缀。
Android浏览器目前仍然不支持calc,所以要在之前增加一个保守尺寸。

解决方案:

div {     width: 95%;     width: -webkit-calc(100% - 50px);     width: calc(100% - 50px); }

来源地址:https://blog.csdn.net/angela_zhaoBei/article/details/131813407

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯