feet/lib/util.dart
2023-02-05 16:00:10 +01:00

41 lines
1.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:url_launcher/url_launcher.dart';
Future<void> openUrl(BuildContext context, String url) async {
try {
if (await canLaunchUrl(Uri.parse(url))) {
await launchUrl(
Uri.parse(url),
mode: LaunchMode.externalApplication,
);
} else {
throw 'No application available to open URL';
}
} catch (e) {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: const Text('Cannot open this URL'),
content: Text(e.toString()),
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop();
Clipboard.setData(
ClipboardData(
text: url,
),
);
},
child: const Text('Copy URL'),
),
TextButton(
onPressed: () => Navigator.of(context).pop(),
child: const Text('Got it!'),
),
],
),
);
}
}