首页 > 其他分享 >移动端兼容问题汇总

移动端兼容问题汇总

时间:2023-05-09 10:22:36浏览次数:38  
标签:document 兼容问题 汇总 IOS context input Android 移动 页面

序号 机型/系统 问题描述 解决方案
     
1 IOS 正则表达式导致的iOS进入页面白屏问题 因为iOS不支持正则的零宽断言,改成字符串切割或者其他替代方案即可
2 IOS IOS时间格式问题 IOS的new Date日期格式不能使用YYYY-MM-DD,必须使用new Date("YYYY/MM/DD")。(第六点类似)
3 IOS iOS点击input框导致页面放大 <meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
4 IOS h5打包iOS出现底部安全区域留白或者出现底部固定定位上下移动问题 <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover,user-scalable=no">
5 IOS input调起手机软键盘采取fixed定位在最底部的话,在安卓机上一般是正常的,但是在ios手机上会出现定位不准的问题,比如会被软键盘遮挡住,或者没有定位到软键盘正上方 input聚焦事件,聚焦后将页面滚动条滚动到页面最底部 document.body.scrollTop = document.body.scrollHeight
6 IOS new Date(),ios规定日期要以“ / ”分割,而不能用“ - ” 改用“/”分割,例如:new Date('2023/01/01 00:00:00')
7 华为 ios端打开h5页面后,从a页面跳转到b页面,然后再返回a页面之后,a页面未刷新。 window.addEventListener
  if (event.persisted
   //重载页面或者刷新数据
  } 
})
8 IOS 视频播放,ios要求至少要有一次交互才能开始播放 1.在微信环境内可以利用微信的api(微信内置浏览器的私有对象WeixinJSBridge)实现自动播放
2.其他环境下,为了保证兼容性,一般最好有个缓冲页面,用来加载资源,并提示用户点击开始播放。
var audio = document.getElementById(xxx)
document.addEventListener
play = function(){
    audio.play
    document.removeEventListener('touchstart', play, false)
}
audio.play()
//兼容微信
document.addEventListener('WeixinJSBridgeReady',() => {
    play();
}, false)
9 IOS 点击事件的300ms延迟 <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
10 Android 输入框input输入时键盘将页面顶起到止布局混乱的问题 页面初始化时计算当前页面高度,并动态绑定min-height样式即可
11 通用 canvas绘制图片模糊问题 将canvas的宽高及画的图片宽高扩大设备的物理像素,最终渲染的图片用img图片指定渲染的宽高。
                const dom = document.getElementById
                let ctx = dom.getContext
                // 像素有点虚,canvas扩大1倍画
                getPixelRation(context) {
                        const backingStore = context.backingStorePixelRatio
                            || context.webkitBackingStorePixelRatio
                            || context.mozBackingStorePixelRatio
                            || context.msBackingStorePixelRatio
                            || context.oBackingStorePixelRatio
                            || context.backingStorePixelRatio
                       return (window.devicePixelRatio
                }
                let ratio = getPixelRation(cxt)
                ctx.width
                ctx.height

                const img = new Image()
                img.src
                setTimeout(() => {
                    cxt.drawImage
                    this.imgUrl = ctx.toDataURL
                }, 300)
12 Android 部分机型点击图片会放大     img{ 
      pointer-events:none; 
    }
13 华为 对flex:1的兼容问题 {
-webkit-box-flex: 1;
-ms-flex: 1;
flex: 1;
display: block;
width: 0%;
}
14 Android 低版本浏览器下vconsole空白的问题 安装依赖,resize-observer-polyfill,在main.js中引入即可
15 Android 页面加载时图片高度默认不存在 用padding-top设置百分比值来实现自适应,padding-top = (图片高度/ 图片宽度) * 100%
16 Android input 的placeholder属性使文本位置偏上 line-height:normal
17 Android location. reload() 安卓微信内不刷新页面 vue this.$router.go(0)
18 通用 h5开启了定位,但无法获取定位 必须要用https开头的协议链接
       

标签:document,兼容问题,汇总,IOS,context,input,Android,移动,页面
From: https://www.cnblogs.com/wxyblog/p/17349464.html

相关文章

  • mysql 移动数据目录data后启动失败
    ###############################一、需要更改my.cnf中所有关于路径的参数二、更改binlog.index中的路径信息三、更改relaylog.index中的路径信息                   ###########################......
  • 将windows操作系统(win10)装入移动硬盘
    1.准备windows系统镜像比如我的iso镜像:zh-cn_windows_10_business_editions_version_22h2_updated_april_2023_x64_dvd_c03ed5aa.iso镜像挂载后可以看到关键文件 2.对移动硬盘进行分区 listdiskselectdiskncleanconvertgptselectpartition1deletepartiti......
  • FastRPC资料汇总
     DEFCONSafeMode-SlavaMakkaveev-Pwn2OwnQualcommcomputeDSPforfunandprofit.pdf https://github.com/raspberrypi/linux/blob/stable/drivers/misc/fastrpc.c external_fastrpc/fastrpc_apps_user.cat556fa85d14bfdac3c211e27cec9b975f9efb50c6·Evol......
  • Django笔记三十六之单元测试汇总介绍
    本文首发于公众号:Hunter后端原文链接:Django笔记三十六之单元测试汇总介绍Django的单元测试使用了Python的标准库:unittest。在我们创建的每一个application下面都有一个tests.py文件,我们通过继承django.test.TestCase编写我们的单元测试。本篇笔记会包括单元测试的......
  • MySQL调优 - 汇总
    汇总下平时开发中对mysql的调优过程。(一)mysqlserver的调优首先需要知道哪些配置可以调整,通过showvariables可以查看配置项。可以通过set方式更改配置项:方式一:(例子)set long_query_time=1;但仅对当前session生效,新连接更改无作用,如下方式二:(例子)setgloballong_query_t......
  • 深入理解C++右值引用和移动语义:全面解析
    C++11引入了右值引用,它也是C++11最重要的新特性之一。原因在于它解决了C++的一大历史遗留问题,即消除了很多场景下的不必要的额外开销。即使你的代码中并不直接使用右值引用,也可以通过标准库,间接地从这一特性中收益。为了更好地理解该特性带来的优化,以及帮助我们实现更高效的程序,......
  • Mac M系列芯片 vue前端node-sass兼容问题解决
    0、由于M系列芯片是arm架构,在使用brew安装node时都是arm的node,但是[email protected]版本中不支持arm架构的出现如下报错:Error:NodeSassdoesnotyetsupportyourcurrentenvironment:OSXUnsupportedarchitecture(arm64)withUnsupportedruntime(88)Formoreinfor......
  • vue-移动端开发-样式适配方案
    样式适配场景:一个项目中既包含了web端也包含了移动端的页面,web端的一些样式不能在移动端正常显示解决方式:npmipostcss-px-to-viewport项目目录下postcss.config.jsmodule.exports={plugins:{"postcss-px-to-viewport":{unitToConvert:"px",view......
  • Freeswitch挂断原因汇总
    NORMAL_RELEASE正常释放NORMAL_CLEARING双方都由运营商挂断,正常CALL_REJECTED呼叫被拒绝,正常USER_BUSY用户占线繁忙,正常NO_ANSWER呼叫未应答,正常NO_USER_RESPONSE呼叫未应答超时,正常NORMAL_TEMPORARY_FAILURE呼叫线路超时TIMEOUT超时(一般是SIP超时)NO_RO......
  • 分布式系统唯一ID生成方案汇总
    系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。1.数据库自增长序列或字段最常见的方式。利用数据库,全数......