移动端前端开发遇到过的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
);
相关推荐
德育处主任Pro2 小时前
『React』Fragment的用法及简写形式
前端·javascript·react.js
CodeBlossom3 小时前
javaweb -html -CSS
前端·javascript·html
CodeCraft Studio3 小时前
【案例分享】如何借助JS UI组件库DHTMLX Suite构建高效物联网IIoT平台
javascript·物联网·ui
打小就很皮...3 小时前
HBuilder 发行Android(apk包)全流程指南
前端·javascript·微信小程序
dancing9996 小时前
cocos3.X的oops框架oops-plugin-excel-to-json改进兼容多表单导出功能
前端·javascript·typescript·游戏程序
萌萌哒草头将军6 小时前
🚀🚀🚀Prisma 发布无 Rust 引擎预览版,安装和使用更轻量;支持任何 ORM 连接引擎;支持自动备份...
前端·javascript·vue.js
书语时7 小时前
ES6 Promise 状态机
前端·javascript·es6
拉不动的猪7 小时前
管理不同权限用户的左侧菜单展示以及权限按钮的启用 / 禁用之其中一种解决方案
前端·javascript·面试
西陵7 小时前
前端框架渲染DOM的的方式你知道多少?
前端·javascript·架构
海的诗篇_8 小时前
前端开发面试题总结-JavaScript篇(一)
开发语言·前端·javascript·学习·面试