import 'dart:async'; import 'package:app_links/app_links.dart'; import 'package:get/get.dart'; class DeepLinkController extends GetxController { final _appLinks = AppLinks(); StreamSubscription? _linkSubscription; // تخزين الرابط الخام (URL) ليتم معالجته لاحقاً في MapPassengerController final Rx rawDeepLink = Rx(null); @override void onInit() { super.onInit(); initDeepLinks(); } Future initDeepLinks() async { // الاستماع للروابط والتطبيق يعمل في الخلفية _linkSubscription = _appLinks.uriLinkStream.listen((uri) { print('🔗 Received deep link (Stream): $uri'); rawDeepLink.value = uri.toString(); }); // الاستماع للروابط إذا كان التطبيق مغلقاً تماماً (Cold Start) try { final initialUri = await _appLinks.getInitialLink(); if (initialUri != null) { print('🔗 Received initial deep link (Cold Start): $initialUri'); rawDeepLink.value = initialUri.toString(); } } catch (e) { print('Error getting initial link: $e'); } } @override void onClose() { _linkSubscription?.cancel(); super.onClose(); } }