探讨下前端开发过程中在苹果系统下的一些兼容性小坑以及解决方案

导读: 本文会长期更新,目前仅写出已收集并且经过验证的案例分享🙉

大家在做前端开发过程中势必会和H5打交道<这里指的H5仅表示在苹果系统下运行的H5>,在原本不应该出现的异常行为经常会搞得稀里糊涂,遂去各类搜索引擎搜索结局方案,本文故此摘录各类表现在苹果环境下的开发“异常行为”,并且给出大概可行的兼容方案来帮助大家单项搜集的烦恼

可能存在兼容性问题搜集


1.Date.parse()

parse() 方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。W3C参考文档

代码部分:

1
Date.parse("2020-02-02 00:00:00")

可能会在苹果环境中出现NaN的返回结果

解决方案是:

  1. 不使用具体时间 => Date.parse("2020-02-02")
  2. 使用“**/”代替“-**”来分割日期 => Date.parse("2020/02/02 00:00:00")
  3. 替换字符串为第二种方案 => Date.parse("2020-02-02 00:00:00".replace(/-/g, '/'))

2.window.open()

open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。W3C参考文档

代码部分:

1
window.open('//rexhang.com');

可能会在苹果环境中出现被阻止打开的情况,这是由于苹果安全策略进行了拦截

解决方案是:

  1. 使用window.location.href = '//rexhang.com'代替
  2. 使用window.location.replace('//rexhang.com')代替

3.待博主更新…

结语


这样的坑还有许多许多不仅仅是ios还有android也会存在一些兼容性问题,本文会长期更新,尽可能搜集更多的兼容案例,如有更多案例本文未提到的,希望大家踊跃提出,反馈在下方评论里,多谢大家~