diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index e216dae5..f25d366d 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/lib/uitl/LocalNotification.dart b/lib/uitl/LocalNotification.dart index 0cdef6ca..ead098fe 100644 --- a/lib/uitl/LocalNotification.dart +++ b/lib/uitl/LocalNotification.dart @@ -31,7 +31,7 @@ class LocalNotification { _initialize() async { try { var initializationSettingsAndroid = new AndroidInitializationSettings('app_icon'); - var initializationSettingsIOS = DarwinInitializationSettings(onDidReceiveLocalNotification: null); + var initializationSettingsIOS = DarwinInitializationSettings(); var initializationSettings = InitializationSettings(android: initializationSettingsAndroid, iOS: initializationSettingsIOS); await flutterLocalNotificationsPlugin.initialize( initializationSettings, diff --git a/pubspec.yaml b/pubspec.yaml index 5bad9780..f7ccd8f5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -187,6 +187,7 @@ dependencies: firebase_crashlytics: ^3.0.0 cloudflare_turnstile: ^2.0.1 + app_links: ^6.4.0 # vital_sign_camera: # path: ./packages/vital_sign_camera