我正在尝试在ios 13上运行的cordova 8.0.0应用程序中使用IntersectionObserver。当我通过野生动物园检查我的应用程序时,看到初始化错误:
ReferenceError: Can't find variable: IntersectionObserver
这表明IntersectionObserver不可用,我应该使用polyfill。但!我读过许多帖子,声称iOS Safari 12+已自然支持IntersectionObserver。我有点假设,cordova将运行在天生可用的WKWebView上,因此它应该在没有polyfill的情况下也可以工作,对吗?
我发现我的野生动物园实验功能中启用了IntersectionObserver,所以也许还有一个选项/标志可以用来在我的应用中强制启用此功能?如果可能的话,我真的想避免使用polyfill。
感谢任何建议
答案 0 :(得分:0)
IntersectionObserver API。但是它是通过“实验功能”支持的,并且默认情况下启用。我假设默认情况下在cordova中未启用实验性功能,但到目前为止,我还没有找到一种将其配置为启用的方法。
一个选项是使用polyfill:https://www.npmjs.com/package/intersection-observer。我对自己进行了测试,性能还不够好,它使用setTimeout
或MutationObserver
来观察启用了所有选项的整个文档。
答案 1 :(得分:0)
我刚刚添加了这个检查
if ('IntersectionObserver' in window) {
// IntersectionObserver initialization code
} else {
// make lazy loading elements to be loaded right away
}
享受