移动端前端开发遇到过的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
);
相关推荐
Senar29 分钟前
如何判断浏览器是否开启硬件加速
前端·javascript·数据可视化
codingandsleeping1 小时前
一个简易版无缝轮播图的实现思路
前端·javascript·css
拉不动的猪2 小时前
简单回顾下插槽透传
前端·javascript·面试
爱吃鱼的锅包肉2 小时前
Flutter路由模块化管理方案
前端·javascript·flutter
风清扬雨3 小时前
Vue3具名插槽用法全解——从零到一的详细指南
前端·javascript·vue.js
海盗强3 小时前
Vue 3 常见的通信方式
javascript·vue.js·ecmascript
oscar9994 小时前
JavaScript与TypeScript
开发语言·javascript·typescript
橘子味的冰淇淋~4 小时前
【解决】Vue + Vite + TS 配置路径别名成功仍爆红
前端·javascript·vue.js
leluckys5 小时前
flutter 专题 六十三 Flutter入门与实战作者:xiangzhihong8Fluter 应用调试
前端·javascript·flutter
shoa_top6 小时前
JavaScript 数组方法总结
javascript