Для работы с deep linking в приложениях Flutter на iOS необходимо выполнить следующие шаги:
1. Настройка проекта:
- Откройте файл ios/Runner/Info.plist
и добавьте следующую конфигурацию для обработки deep linking:
<key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLName</key> <string>com.example.flutter</string> <key>CFBundleURLSchemes</key> <array> <string>myapp</string> </array>
2. Обработка deep links в коде Flutter:
- Используйте пакет firebase_dynamic_links
для обработки deep linking в приложении Flutter. Добавьте этот пакет в файл pubspec.yaml
:
dependencies: firebase_dynamic_links: ^2.0.0
- Далее инициализируйте Firebase и настройте обработку deep linking в точке входа приложения (обычно это в файле main.dart
):
import 'package:firebase_dynamic_links/firebase_dynamic_links.dart'; void main() { WidgetsFlutterBinding.ensureInitialized(); runApp(MyApp()); FirebaseDynamicLinks.instance.onLink( onSuccess: (PendingDynamicLinkData? dynamicLink) async { final Uri deepLink = dynamicLink?.link; // Обработка deep link здесь }, onError: (OnLinkErrorException e) async { print('Error processing dynamic link: ${e.message}'); } ); // Проверка существующих deep link при запуске приложения handleDynamicLinks(); } Future<void> handleDynamicLinks() async { final PendingDynamicLinkData? data = await FirebaseDynamicLinks.instance.getInitialLink(); final Uri deepLink = data?.link; // Обработка существующего deep link при запуске }
3. Тестирование:
- Для тестирования deep linking на устройстве iOS, вам необходимо сгенерировать и установить универсальные ссылки (Universal Links) или использовать пользовательские схемы (custom URL schemes) в зависимости от того, что вы настроили в Info.plist
.
После выполнения вышеперечисленных шагов вы сможете успешно реализовать deep linking в вашем приложении Flutter на iOS. Не забудьте также настроить deep linking для Android, если ваше приложение поддерживает обе платформы.