diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index f009f25..e542ef2 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -23,6 +23,7 @@
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"
/>
+
@@ -38,6 +39,15 @@
+
+
+
+
+
+
+
+
+
diff --git a/lib/navigation/app_initializer.dart b/lib/navigation/app_initializer.dart
index 52f84fa..bec9bee 100644
--- a/lib/navigation/app_initializer.dart
+++ b/lib/navigation/app_initializer.dart
@@ -55,18 +55,24 @@ final appInitializer = FutureProvider((ref) async {
// Handle deep links
final appLinksSub = appLinks.uriLinkStream.listen((uri) async {
- if (uri.scheme == 'zapstore') {
+ String? appId;
+ if (uri.scheme == 'https' && uri.hasFragment) {
+ appId = uri.fragment;
+ } else if (uri.scheme == 'zapstore') {
+ appId = uri.host;
+ }
+ if (appId != null) {
final adapter = ref.apps.appAdapter;
- final apps = adapter.findWhereIdentifierInLocal({uri.host});
+ final apps = adapter.findWhereIdentifierInLocal({appId});
// Filter by signer npub, if present, otherwise pick first
final appSignerNpub = uri.queryParameters['signer'];
- var app =
+ var goToApp =
apps.firstWhereOrNull((a) => a.signer.value?.npub == appSignerNpub);
if (appSignerNpub == null) {
- app = apps.first;
+ goToApp = apps.first;
}
- if (app != null) {
- appRouter.go('/details', extra: app);
+ if (goToApp != null) {
+ appRouter.go('/details', extra: goToApp);
} else {
appRouter.go('/');
}