咚咚技术团队
  • 首页
  • 文章
    • 前端
      • 0.1 + 0.2 精度丢失深究
      • IOS H5 视频无法播放
      • H5 播放 amr 音频文件
      • IOS 10.x 版本在 Taro 中的兼容性问题
      • 百度 UEditor 引发的 cross-iframe 问题解决方案
      • 访问 www.banchengyun.com 时发生了什么
      • decodeURIComponent 与特殊符号
      • 前端埋点
    • 后端
      • Swoole 相关
        • MAC 本地环境执行 GuzzleHttp 时导致 Swoole 进程异常退出
      • Hyperf 相关
        • 在 phpstorm 中调试 hyperf 代码
        • Hyperf 1.x Proxy 缓存失效问题
      • K8s 相关
        • 搭建 k8s 集群
        • 使用 docker-compose 快速搭建 Hyperf + Redis 开发环境
        • Kubernetes Autoscaler
      • 其它
        • 幂等性和原子性
    • 测试
    • 效能提升
      • 优秀开发者的第一步:始于需求分析
      • 优秀开发者的第二步:如何阅读他人的代码
  • 活动
  • 课堂
  • 知识库
    • 公共
      • 什么是流程型组织
      • 半城云集成产品开发流程
      • 阿⾥云 Codeup 代码平台使⽤ & 迁移指南
      • git 使用规范
      • 关于第三方与服务号授权的问题
      • 收不到消息的排查方法
      • 系统安全
      • 前端编码规范
      • 后端编码规范
      • 测试规范
    • 前端
      • 规范
        • 前端编码规范
        • 咚咚技术栈
        • code-review 规范
        • git 工作流
        • Tapd 文档
      • 复盘经验
        • 2021.01 效能、规范、技术债讨论会
      • Code Review
        • SCRM 2020-07
    • 后端
      • 复盘经验
        • SCRM 2020 年 8 月
      • Code Review
        • SCRM 2020-07
    • 测试
      • 复盘经验
        • SCRM 2020 年 8 月
  • 项目文档
    • 前端
    • 后端:小程序
    • 后端:企业微信
  • 接口文档
  • 兴趣小组
    • golang 小组
    • 增长小组
    • 前端小组
  • 书单推荐
  • 生产环境 分析会
    • NO.2022.01
  • 生产环境 可用性
  • 团队活动
    • OpenTalk
      • NO.2021.Q3
      • NO.2020.Q2
    • WalkTogether
  • 关于我们
  • GitBook 使用说明
由 GitBook 提供支持
在本页

这有帮助吗?

  1. 文章
  2. 前端

IOS 10.x 版本在 Taro 中的兼容性问题

上一页H5 播放 amr 音频文件下一页百度 UEditor 引发的 cross-iframe 问题解决方案

最后更新于3年前

这有帮助吗?

踩坑记录,Taro 在 ios 10.x.x 版本中 整个页面卡死

问题描述:

此前也收到过类似的反馈,但基数很小,所以忽略了。

本次所属商家:漫滋烧肉居酒屋 活动:分销 订单数量:8600 单

收到 8-10 名用户反馈订单列表页面无法正常操作,通过收集用户数据,发现问题集中在 ios 9 和 ios 10 系统。

stikcer

依然用着 13 以下系统的用户仅占 2%。

下载完后打开对应版本的模拟器,调试发现以下错误:

字面意思就是尝试对一个只读属性赋值。

TrackJS 指出,这个报错是一个 ios 中 webkit 内核的 bug(而且每个框架都以独特的方式遇到这个问题.)

找了一圈,最后在 tarojs 的源码看到了这一句

@tarojs/taro-h5/src/api/utils/

这个函数是 taro 中的 Toast,Modal,Loading 等所有携带蒙版组件的注销方法。项目中到处都有用到,坑是真坑啊!!!!!!

说说几个解决方法:

  1. 判断用户的 ios 版本,如果在 11 以下,则绕过所有带蒙版的组件的渲染,关闭那 2%用户的体验,换取 bug 的修复。

  2. 给 taro 官方对应的版本提 issue,等待修复。就等到一千年以后。

  3. 将当前 tarojs 源码复制出来,修改后发布到自己的仓库,后期项目开发依赖这个版本,还可以魔改 taro。

让我们来康康这两个版本依然健在的用户量

问题还是要解决的,我们从根源出发,模拟用户的系统。 使用 ios 开发者工具 xcode,在 components 中找到 10.3 系统并下载。

components
errorText

errorCode

早在 18 年的时候就有人向 Taro 开发团队反馈了这个问题,但是:

WebIDL attributes should be implemented as getters and setters on the prototype object.
version
perferences
stickerTwo