Ocideck/lib/utils/url_launcher_util.dart
Brenno de Winter dd2e91d61b Initial commit: OciDeck Marp presentation builder
Flutter desktop app for building Marp presentations via structured
slide editors, with live preview, fullscreen presenter, and PDF/PPTX
export. Includes Makefile quality gate, CI workflow, and full test suite.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-02 23:28:39 +02:00

21 lines
693 B
Dart

import 'package:url_launcher/url_launcher.dart';
/// Open een link uit slide-tekst in de externe browser. Kale domeinen
/// (zonder schema) krijgen automatisch `https://`. Faalt stil bij ongeldige
/// of niet-openbare URLs.
Future<void> openExternalUrl(String url) async {
var u = url.trim();
if (u.isEmpty) return;
if (!u.contains('://') && !u.startsWith('mailto:')) {
u = u.contains('@') ? 'mailto:$u' : 'https://$u';
}
final uri = Uri.tryParse(u);
if (uri == null) return;
try {
if (await canLaunchUrl(uri)) {
await launchUrl(uri, mode: LaunchMode.externalApplication);
}
} catch (_) {
// Nooit de presentatie laten crashen op een kapotte link.
}
}