Flutter web启动时,可能需要几秒钟才能启动并开始渲染主页。因此,我在CCD_ 1中添加了一个微调器,以向用户指示一切正常。
在index.html
中(我已经简化了(
<body>
<div class="spinner"></div>
.
.
.
</body>
那么我需要在main.dart.js
完全加载时侦听一个事件,以删除微调器元素。有人知道我应该听什么活动吗?(我说的是可以在index.html
中获益的javascript事件(我听不到windows.onload
,因为它在颤动启动之前就启动了。
事件名称为flutter-first-frame
。在index.html
中添加以下脚本,当flutter框架完全加载时,该脚本将删除id为spinner
的元素(加载指示符(。
<script>
window.addEventListener('flutter-first-frame', function () {
var el = document.getElementsByClassName('spinner')[0];
el.remove();
});
</script>
阅读更多:https://haashem.medium.com/add-loading-indicator-toflutter-web-653579fe939a
使用js包从Flutter调用一个js函数,该函数将删除微调器:
@JS()
library loading;
import 'package:js/js.dart';
@JS("stopLoading")
external void stopLoading();
在你的index.html
:
<script>
function stopLoading() {
...
}
</script>