import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:url_launcher/url_launcher.dart'; Future 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!'), ), ], ), ); } }