移动端开发兼容性问题记录(H5、vue、vant)

24 篇文章 1 订阅
1 篇文章 0 订阅
本文探讨了在移动开发中遇到的三个主要问题:1)iOS系统中新Date函数处理日期格式的问题,提出了使用正则替换进行兼容;2)安卓设备键盘弹起导致的屏幕高度压缩,建议避免使用百分比并以px设置页面高度;3)JavaScript数组sort排序的不一致性,推荐使用稳定排序策略。这些解决方案有助于提升跨平台应用的用户体验。
摘要由CSDN通过智能技术生成

1、苹果手机IOS系统 new Date(YYYY-MM-DD) 会报错

将 YYYY-MM-DD 换成 YYYY/MM/DD 格式
建议重写 Date() 函数


  try {
    console.log('HTML say: 进入重写 Date 函数逻辑')
    // 修改Date
    function myDate() {
      const OldDate = Date
      Date = function () {
        if (
          arguments.length > 0 &&
          typeof arguments[0] === 'string' &&
          arguments[0].includes('-')
        ) {
          const p = arguments[0].replace(/-/g, '/')
          arguments[0] = p
        }
        return new OldDate(...arguments)
      }
      Date.prototype = OldDate.prototype
      const oldDateStaticParam = Object.getOwnPropertyNames(OldDate)
      const dateStaticParam = Object.getOwnPropertyNames(Date)
      const diffParam = []
      for (let i = 0; i < oldDateStaticParam.length; i++) {
        let find = false
        for (let j = 0; j < dateStaticParam.length; j++) {
          if (oldDateStaticParam[i] === dateStaticParam[j]) {
            find = true
            break
          }
        }
        if (!find) {
          diffParam.push(oldDateStaticParam[i])
        }
      }
      for (let i = 0; i < diffParam.length; i++) {
        Date[diffParam[i]] = OldDate[diffParam[i]]
      }
    }
    // ----
    if (
      navigator.userAgent.includes('iPhone') ||
      navigator.userAgent.includes('iPad')
    ) {
      myDate() // 兼容该死的 IOS
    }
  } catch (error) {
    console('HTML say: 重写 Date 函数逻辑运行出错', error)
  }

2、安卓机 弹起键盘 会压缩屏幕高度

根dom元素高度 不要用 100% ; js获取设备高度使用px设置页面高度;

document.body.querySelector("#main").style.height = window.innerHeight + "px";

3、sort排序在不同设备结果不一致问题

在使用sort排序时,若遇到相同数据或非数值数据时,可能会出现不同手机排序不一致问题
建议 sort((a,b)=>{return a===b? 0 : a>b ? -1 : 1}) 把相等情况返回0的情况也写出来; 还不行的话,就手写排序逻辑吧

ing ……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#老程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值