injectCssAndJSLibraries method

Future<void> injectCssAndJSLibraries()

injectCssAndJSLibraries which add the JS and CSS files into DOM

Implementation

Future<void> injectCssAndJSLibraries() async {
  final List<Future<void>> loading = <Future<void>>[];
  final List<html.HtmlElement> tags = <html.HtmlElement>[];

  // ignore: undefined_prefixed_name
  final cssUrl = ui.webOnlyAssetManager.getAssetUrl(
    'packages/fluttertoast/assets/toastify.css',
  );
  final html.LinkElement css = html.LinkElement()
    ..id = 'toast-css'
    ..attributes = {"rel": "stylesheet"}
    ..href = cssUrl;
  tags.add(css);

  // ignore: undefined_prefixed_name
  final jsUrl = ui.webOnlyAssetManager.getAssetUrl(
    'packages/fluttertoast/assets/toastify.js',
  );
  final html.ScriptElement script = html.ScriptElement()
    ..async = true
    // ..defer = true
    ..src = jsUrl;
  loading.add(script.onLoad.first);
  tags.add(script);
  html.querySelector('head')!.children.addAll(tags);

  await Future.wait(loading);
}