uni-app 启动是否启用摇树优化打包H5后 部分手机原生api对象IntersectionObserver为空

uni-app 启动是否启用摇树优化打包H5后 部分手机原生api对象IntersectionObserver为空

开发环境 版本号 项目创建方式
iOS 10.2.1 (14D27) -
4 回复

因为你这部分手机没有原生 IntersectionObserver 是搭的 uni.createIntersectionObserver 的车 uni.createIntersectionObserver 含有 IntersectionObserver Polyfill 如果仍然需要借助 uni.createIntersectionObserver 内的 IntersectionObserver Polyfill 可以在代码内使用一下 uni.createIntersectionObserver。 如果只想单纯使用 IntersectionObserver Polyfill ,自己引入https://www.npmjs.com/package/intersection-observer 即可。

更多关于uni-app 启动是否启用摇树优化打包H5后 部分手机原生api对象IntersectionObserver为空的实战教程也可以访问 https://www.itying.com/category-93-b0.html


那为啥启用摇树优化打包的是不判断下没有原生的api手机用uni.createIntersectionObserver包装打包啊

回复 4***@qq.com: 你说的这句话很难理解,能否整理一下。

针对uni-app打包H5后部分手机IntersectionObserver为空的问题,以下是分析:

  1. 兼容性问题: IntersectionObserver API在iOS 12.2以下版本和部分低版本Android浏览器中不被支持。你的iOS 10.2.1系统版本过低,这是主要原因。

  2. 摇树优化影响: uni-app默认启用摇树优化,但不会删除IntersectionObserver这类基础API。建议检查项目中是否使用了polyfill或第三方库导致兼容性问题。

  3. 解决方案: (1) 使用条件判断:

if('IntersectionObserver' in window) {
  // 使用原生API
} else {
  // 降级方案
}

(2) 添加polyfill:

npm install intersection-observer

然后在main.js中引入:

import 'intersection-observer'
回到顶部