Skip to content

Instantly share code, notes, and snippets.

@jaredsburrows
Created February 2, 2024 03:02
Show Gist options
  • Save jaredsburrows/34042b7099425c86d7af6e7f05636cd4 to your computer and use it in GitHub Desktop.
Save jaredsburrows/34042b7099425c86d7af6e7f05636cd4 to your computer and use it in GitHub Desktop.
Flutter SEO
import 'package:universal_html/html.dart' as html;
import 'logging.dart';
void removeViewport() {
final html.Element? existingViewportTag =
html.querySelector('meta[name="viewport"]');
if (existingViewportTag != null) {
existingViewportTag.remove();
// Set the viewport meta tag - <meta flt-viewport="" name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes">
final html.Element metaViewportTag = html.Element.tag('meta')
..setAttribute('flt-viewport', '')
..setAttribute('name', 'viewport')
..setAttribute(
'content',
'width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=yes',
);
html.document.head?.append(metaViewportTag);
} else {
logger.w('Viewport meta tag not found');
}
}
void updatePageTitle(String pageName) {
// Update the page title - Burrows Tools - page, eg. Burrows Tools - Character Counter
if (pageName.isEmpty) {
html.document.title = 'Burrows Tools';
} else {
html.document.title = 'Burrows Tools - $pageName';
}
}
void updateCanonicalUrl(String pageUrl) {
final html.Element? existingCanonicalTag =
html.querySelector('link[rel="canonical"]');
if (existingCanonicalTag != null) {
existingCanonicalTag.remove();
// Update the canonical meta tag - https://burrows.tools + /page, eg. https://burrows.tools/character-counter
final html.LinkElement canonicalTag = html.LinkElement()
..setAttribute('rel', 'canonical')
..setAttribute('href', 'https://burrows.tools$pageUrl');
html.document.head?.append(canonicalTag);
} else {
logger.w('Canonical meta tag not found');
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment