injectCssAndJSLibraries method
注入CSS和JavaScript库到DOM中
动态加载Toastify.js库的CSS和JS文件,确保Toast功能正常工作
Implementation
Future<void> injectCssAndJSLibraries() async {
final List<Future<void>> loading = <Future<void>>[];
final List<web.HTMLElement> tags = <web.HTMLElement>[];
// 获取CSS文件URL并创建link元素
final cssUrl = ui.assetManager.getAssetUrl(
'packages/dencend_toast/assets/toastify.css',
);
final web.HTMLLinkElement css = web.HTMLLinkElement()
..id = 'toast-css'
..setAttribute("rel", "stylesheet")
..href = cssUrl;
tags.add(css);
// 获取JS文件URL并创建script元素
final jsUrl = ui.assetManager.getAssetUrl(
'packages/dencend_toast/assets/toastify.js',
);
final web.HTMLScriptElement script = web.HTMLScriptElement()
..async = true
..src = jsUrl;
loading.add(script.onLoad.first);
tags.add(script);
// 将所有元素添加到文档头部
for (final web.HTMLElement tag in tags) {
web.document.querySelector('head')!.append(tag);
}
// 等待所有JS资源加载完成
await Future.wait(loading);
}