首页 > 解决方案 > iOS:WKWebView 不会立即加载本地 JS 文件

问题描述

我正在将两个 JS 文件加载到WKWebViewvialoadHTMLstring方法中。这些脚本嵌入在应用程序中,因此不会执行 HTTP 调用。第一个脚本加载到head标签中。第二个是内联。这适用于 Lottie 网络播放器:https ://github.com/LottieFiles/lottie-player 。因此,第一个加载lottie-player.js,而第二个加载lottie-player元素之后的动画。

第二个脚本执行类似于:

const player = document.querySelector("lottie-player");

// or load via a Bodymovin JSON string/object
player.load(
  '{"v":"5.3.4","fr":30,"ip":0,"op":38,"w":315,"h":600,"nm":"new", ... }'
);

一切正常(即动画加载和播放)。我面临的问题是动画变得可见大约需要 1 秒,因此WKWebView似乎不会立即加载脚本。有没有办法解决这个问题?我正在使用默认的WKWebViewConfiguration.

标签: javascripthtmlioswkwebviewlottie

解决方案


WKWebView 初始化和首次加载很慢。最好在加载包含 WKWebView 的视图控制器之前初始化和加载 WKWebView。您可以使用下面的项目来检查他们是如何实现这一目标的,以供您参考,并且他们还比较了加载时间。

https://github.com/bernikovich/WebViewWarmUper

也希望加载动画不会花费太多时间。


推荐阅读