import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';
Future<void> makePhoneCall(String phoneNumber) async {
final Uri launchUri = Uri(
scheme: 'tel',
path: phoneNumber,
);
await launchUrl(launchUri);
}
Future<void> launchAppUrl(BuildContext context, Uri uri,
{String? errorMessage}) async {
debugPrint('Trying to launch: $uri');
final canLaunch = await canLaunchUrl(uri);
debugPrint('canLaunchUrl result: $canLaunch');
if (canLaunch) {
await launchUrl(uri, mode: LaunchMode.externalApplication);
} else {
debugPrint('canLaunchUrl returned false for: $uri');
if (context.mounted) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(errorMessage ?? 'Could not open the app.')),
);
}
}
}
Future<void> launchEmail(BuildContext context, String email,
{String? errorMessage}) async {
final Uri emailUri = Uri(scheme: 'mailto', path: email);
await launchAppUrl(context, emailUri,
errorMessage: errorMessage ?? 'Could not open email app.');
}