Flutter: 3.19.6 < /li>
url_launcher: 6.3.1 < /li>
< /ul>
I
Код: Выделить всё
import 'package:url_launcher/url_launcher.dart';
Future openLink({
required String url,
LaunchMode? mode,
required PrefixLauncher prefix,
bool showMsg = true,
WebViewConfiguration? webViewConfiguration,
}) async {
try {
var baseUrl = '';
switch (prefix) {
case PrefixLauncher.url:
baseUrl = 'https://$url';
break;
case PrefixLauncher.email:
baseUrl = 'mailto:$url';
break;
case PrefixLauncher.call:
baseUrl = 'tel:$url'.replaceAll(" ", "");
break;
case PrefixLauncher.message:
baseUrl = 'sms:$url';
break;
default:
baseUrl = url;
break;
}
Uri uri = Uri.parse(baseUrl);
if (await canLaunchUrl(uri)) {
if (!await launchUrl(
uri,
mode: mode ?? LaunchMode.externalApplication, // Default mode
)) {
if (showMsg) showToast('something_wrong'.tr());
Log.error('Could not launch : $url');
return false;
} else {
return true;
}
}
return false;
} on Exception catch (e) {
Log.error('Error: $e');
return false;
}
}
LSApplicationQueriesSchemes
https
http
mailto
tel
sms
NSAppTransportSecurity
NSAllowsArbitraryLoads
< /code>
Приложение должно открывать URL -адреса, почтовые клиенты, телефон -номеры и приложения SMS извне на iOS при использовании LaunchMode.externalApplication. < /p>
Однако на iOS вызов OpenLink () с запуском.>
Подробнее здесь: https://stackoverflow.com/questions/794 ... ion-on-ios
Мобильная версия