ios13 - 参考错误:找不到变量:IntersectionObserver
问题描述
我正在尝试在 ios 13 上运行的 cordova 8.0.0 应用程序中使用 IntersectionObserver。当我通过 safari 检查我的应用程序时,我看到初始化错误:
ReferenceError: Can't find variable: IntersectionObserver
这表明 IntersectionObserver 不可用,我应该使用 polyfill。但!我读过很多帖子声称 iOS safari 12+ 原生支持 IntersectionObserver。而且我有点假设,cordova 将运行 nativly 可用的 WKWebView,所以它应该在没有 polyfill 的情况下工作,对吧?
我发现我在我的 Safari 实验功能中启用了 IntersectionObserver,所以也许我可以使用一个选项/标志来强制在我的应用程序中启用此功能?如果可能的话,我真的很想避免使用polyfill ..
感谢任何建议
解决方案
自 12.2 起,iOS Safari 支持 IntersectionObserver API。然而,它通过“实验功能”得到支持并默认启用。我假设默认情况下在cordova下没有启用实验功能,到目前为止我还没有找到将其配置为启用的方法。
一个选项是使用 polyfill:https ://www.npmjs.com/package/intersection-observer 。我测试了自己,性能不够好,它使用setTimeout
或MutationObserver
观察启用所有选项的整个文档。
推荐阅读
- r - mutate-across:输出列的截断名称
- sql - sSearch 中的多个“OR”字符串
- javascript - 如何正确模拟 useLocation?
- c - 奇怪的扫描行为
- kdb - kdb union join (with plus join)
- spring-boot - 如何使用 Resilience4j 时间限制器进行同步请求
- c# - 如何在 UWP 中对齐 Gridview / Listbox 项目以居中对齐
- flutter - Flutter Bloc 测试:用于空值的空检查运算符(空安全)
- java - 使用 Spel 通过另一个弹簧值评估一个弹簧值
- reactjs - 如何检查我的 redux 存储是否加密 - React Native