diff --git a/package/lib/src/beamer_delegate.dart b/package/lib/src/beamer_delegate.dart index 0194c9f..11d1023 100644 --- a/package/lib/src/beamer_delegate.dart +++ b/package/lib/src/beamer_delegate.dart @@ -1,4 +1,7 @@ import 'package:beamer/beamer.dart'; +import 'package:beamer/src/browser_tab_title_util_non_web.dart' + if (dart.library.html) 'package:beamer/src/browser_tab_title_util_web.dart' + as browser_tab_title_util; import 'package:beamer/src/utils.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -987,13 +990,10 @@ class BeamerDelegate extends RouterDelegate } void _setBrowserTitle(BuildContext context) { - if (active && kIsWeb && setBrowserTabTitle) { - SystemChrome.setApplicationSwitcherDescription( - ApplicationSwitcherDescription( - label: _currentPages.last.title ?? - currentBeamLocation.state.routeInformation.uri.path, - primaryColor: Theme.of(context).primaryColor.value, - )); + if (active && setBrowserTabTitle) { + final String title = _currentPages.last.title ?? + currentBeamLocation.state.routeInformation.uri.path; + browser_tab_title_util.setTabTitle(title); } } diff --git a/package/lib/src/browser_tab_title_util_non_web.dart b/package/lib/src/browser_tab_title_util_non_web.dart new file mode 100644 index 0000000..d1d204e --- /dev/null +++ b/package/lib/src/browser_tab_title_util_non_web.dart @@ -0,0 +1,4 @@ +/// {@macro browser_tab_title_util.tab_title} +setTabTitle(String title) { + // no-op +} diff --git a/package/lib/src/browser_tab_title_util_web.dart b/package/lib/src/browser_tab_title_util_web.dart new file mode 100644 index 0000000..91ba9ee --- /dev/null +++ b/package/lib/src/browser_tab_title_util_web.dart @@ -0,0 +1,10 @@ +import 'dart:html' as html; + +/// {@template browser_tab_title_util.tab_title} +/// Sets the title of the browser tab on web. +/// +/// This is a no-op on non-web platforms. +/// {@endtemplate} +setTabTitle(String title) { + html.document.title = title; +}