В веб-разработке Flutter получение текущего URL-адреса является общим требованием для различных сценариев, таких как глубокие ссылки, обработка навигации или обмен ссылками. В этой статье мы рассмотрим несколько методов получения URL-адреса в веб-приложении Flutter, а также примеры кода. Давайте погрузимся!
Метод 1: использование API window.location
API window.location обеспечивает доступ к текущему URL-адресу браузера. Чтобы получить URL-адрес во Flutter Web, вы можете использовать библиотеку dart:jsдля взаимодействия с JavaScript. Вот пример:
import 'dart:js' as js;
String getCurrentUrl() {
String currentUrl = js.context['window']['location']['href'];
return currentUrl;
}
Метод 2: использование пакета Universal Platform
Пакет Universal Platform позволяет определить текущую платформу во Flutter, включая Интернет. Вы можете использовать этот пакет для получения URL-адреса. Вот как:
import 'package:universal_platform/universal_platform.dart';
String getCurrentUrl() {
if (UniversalPlatform.isWeb) {
String currentUrl = UniversalPlatform.webArguments['currentUrl'];
return currentUrl;
}
// Handle other platforms if needed
return null;
}
Метод 3: использование пакета WebView
Если вы создаете веб-приложение Flutter, встроенное в WebView, вы можете использовать пакет WebView для получения URL-адреса. Вот пример:
import 'package:webview_flutter/webview_flutter.dart';
Future<String> getCurrentUrl() async {
final controller = WebViewControllers.currentUrl; // Assuming you have a WebViewControllers instance
final currentUrl = await controller.currentUrl();
return currentUrl;
}
Метод 4: использование пакета Path
Пакет Path предоставляет утилиты для работы с URL-адресами. Хотя он не получает текущий URL-адрес напрямую, он может быть полезен для анализа и управления URL-адресами. Вот пример:
import 'package:path/path.dart' as path;
String getCurrentUrl() {
Uri currentUri = Uri.base;
String currentUrl = currentUri.toString();
return currentUrl;
}
В этой статье мы рассмотрели несколько методов получения текущего URL-адреса в веб-приложении Flutter. Мы рассмотрели использование API window.location, пакета Universal Platform, пакета WebView (для встроенных веб-представлений) и пакета Path для манипулирования URL-адресами. В зависимости от вашего конкретного случая использования вы можете выбрать метод, который лучше всего соответствует вашим потребностям. Удачной разработки Flutter Web!