diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 1775312c..ecabe086 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -144,6 +144,9 @@ android:theme="@style/LaunchTheme" android:windowSoftInputMode="adjustResize" tools:node="merge"> + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index a67c0647..91a4aedb 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -122,5 +122,7 @@ MBXAccessToken pk.eyJ1IjoicndhaWQiLCJhIjoiY2x5cGo4aHNjMGNsbTJyc2djempobGQxaSJ9.RCaC6WrUt4A4YnZNfxnONQ + FlutterDeepLinkingEnabled + diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements index 44ce1b68..04bf8575 100644 --- a/ios/Runner/Runner.entitlements +++ b/ios/Runner/Runner.entitlements @@ -26,5 +26,9 @@ $(TeamIdentifierPrefix)* + com.apple.developer.associated-domains + + applinks:hmg.com + diff --git a/lib/main.dart b/lib/main.dart index cd2aab7a..642d485b 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -1,5 +1,7 @@ +import 'dart:async'; import 'dart:io'; +import 'package:app_links/app_links.dart'; import 'package:diplomaticquarterapp/config/config.dart'; import 'package:diplomaticquarterapp/core/viewModels/PharmacyPagesViewModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart'; @@ -14,8 +16,6 @@ import 'package:diplomaticquarterapp/uitl/PlatformBridge.dart'; import 'package:diplomaticquarterapp/uitl/navigation_service.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:firebase_core/firebase_core.dart'; -import 'package:firebase_crashlytics/firebase_crashlytics.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:provider/provider.dart'; @@ -59,7 +59,7 @@ class MyHttpOverrides extends HttpOverrides { class _MyApp extends State { // late AppUpdateInfo _updateInfo; - + StreamSubscription? _linkSubscription; final GlobalKey navigatorKey = GlobalKey(); //0537503378 @@ -92,9 +92,29 @@ class _MyApp extends State { // if (Platform.isAndroid) checkForUpdate(); ThemeNotifier(defaultTheme()); + initDeepLinks(); super.initState(); } + void dispose() { + _linkSubscription?.cancel(); + + super.dispose(); + } + + Future initDeepLinks() async { + // Handle links + _linkSubscription = AppLinks().uriLinkStream.listen((uri) { + debugPrint('onAppLink: $uri'); + openAppLink(uri); + }); + } + + void openAppLink(Uri uri) { + print("the uri is $uri"); + // locator().navigatorKey.currentState?.pushNamed(uri.fragment); + } + @override Widget build(BuildContext context) { PlatformBridge.init(context); diff --git a/pubspec.yaml b/pubspec.yaml index e6c2caca..36e8ea12 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -189,6 +189,7 @@ dependencies: firebase_crashlytics: ^3.0.0 cloudflare_turnstile: ^2.0.1 + app_links: ^6.4.0 device_info_plus: ^10.1.2 # vital_sign_camera: # path: ./packages/vital_sign_camera