移动端前端开发遇到过的Andorid和IOS的差异记录

移动端前端开发遇到过的安卓和苹果的差异记录

  • [1. 引入外部资源,最好用https](#1. 引入外部资源,最好用https)
  • [2. IOS时间戳获取NaN问题](#2. IOS时间戳获取NaN问题)
  • [3. 金额三位分节显示方式](#3. 金额三位分节显示方式)
  • [4. .webp图片支持问题](#4. .webp图片支持问题)

1. 引入外部资源,最好用https

ios处于安全性的考虑,不大支持http引入外部资源,所以引入外部资源的时候最好用https,防止引入失败

2. IOS时间戳获取NaN问题

ios识别不了时间文本里的-,所以用时间文本获取时间戳的时候要做一下处理

时间格式里的-需要替换为/

javascript 复制代码
let time = '2022-11-11'.replace(/-/g, "/");
let date = Date.parse(`${time} 23:59:59`);

3. 金额三位分节显示方式

toLocaleString在部分苹果手机不能用

javascript 复制代码
money.toLocaleString();
javascript 复制代码
// 不兼容小数
	filtermoney(money, decimal, symbol) {
      if (!money || isNaN(money)) return "0";
      var num = parseFloat(money);
      num = String(num.toFixed(decimal ? decimal : 0));
      var re = /(-?\d+)(\d{3})/;
      while (re.test(num)) {
        num = num.replace(re, "$1,$2");
      }
      return symbol ? symbol + num : num;
    },
javascript 复制代码
// 兼容小数,小数部分不分节
if (!money || isNaN(money)) return "0";
      return money.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ",");

4. .webp图片支持问题

.webp图片在一些苹果手机上无法显示,可以使用字符串的 replace() 方法,将 webp 的后缀名替换为 jpg 的后缀名

监听error事件,当事件目标位img标签时,替换图片路径中的webp

javascript 复制代码
document.addEventListener(
  "error",
  (e) => {
    let target = e.target;
    const tagName = target.tagName || "";
    let type = tagName.toLowerCase();
    console.log(tagName.toLowerCase());
    if (tagName.toLowerCase() === "img" && !target.flag) {
      target.flag = true;
      target.src = target.src.replace("format,webp", "format,jpg");
    }
    target = null;
  },
  true
);
相关推荐
浊浪载清辉18 小时前
《Html泛型魔法学院:用霍格沃茨风格网页教授集合框架》
前端·javascript·学习·html
一只一只妖21 小时前
突发奇想,还未实践,在Vben5的Antd模式下,将表单从「JS 配置化」改写成「模板可视化」形式(豆包版)
前端·javascript·vue.js
悟能不能悟1 天前
js闭包问题
开发语言·前端·javascript
秋秋_瑶瑶1 天前
vue-amap组件呈现的效果图如何截图
前端·javascript·vue-amap
LFly_ice1 天前
学习React-9-useSyncExternalStore
javascript·学习·react.js
gnip1 天前
js上下文
前端·javascript
中草药z1 天前
【Stream API】高效简化集合处理
java·前端·javascript·stream·parallelstream·并行流
世伟爱吗喽1 天前
threejs入门学习日记
前端·javascript·three.js
F2E_Zhangmo1 天前
基于cornerstone3D的dicom影像浏览器 第五章 在Displayer四个角落显示信息
开发语言·前端·javascript
小浣熊喜欢揍臭臭1 天前
react+umi项目如何添加electron的功能
javascript·electron·react