diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 65a9dbe7c..eac74c18f 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -20,6 +20,13 @@
+
+
+
+
+
+
+
aps-environment
development
+ com.apple.developer.associated-domains
+
+ applinks:app.flotilla.social
+
diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte
index baf3928db..51c7dc102 100644
--- a/src/routes/+layout.svelte
+++ b/src/routes/+layout.svelte
@@ -5,7 +5,7 @@
import {onMount} from "svelte"
import * as nip19 from "nostr-tools/nip19"
import {get, derived} from "svelte/store"
- import {App} from "@capacitor/app"
+ import {App, type URLOpenListenerEvent} from "@capacitor/app"
import {dev} from "$app/environment"
import {goto} from "$app/navigation"
import {sync, localStorageProvider} from "@welshman/store"
@@ -112,6 +112,13 @@
}
})
+ // Listen for deep link events
+ App.addListener("appUrlOpen", (event: URLOpenListenerEvent) => {
+ const url = new URL(event.url)
+ const target = `${url.pathname}${url.search}${url.hash}`
+ goto(target, {replaceState: false, noScroll: false})
+ })
+
// Nstart login
if (window.location.hash?.startsWith("#nostr-login")) {
const params = new URLSearchParams(window.location.hash.slice(1))
diff --git a/static/.well-known/apple-app-site-association b/static/.well-known/apple-app-site-association
new file mode 100644
index 000000000..61e1c4df7
--- /dev/null
+++ b/static/.well-known/apple-app-site-association
@@ -0,0 +1,11 @@
+{
+ "applinks": {
+ "apps": [],
+ "details": [
+ {
+ "appID": "S26U9DYW3A.social.flotilla",
+ "paths": ["*"]
+ }
+ ]
+ }
+}
diff --git a/static/.well-known/assetlinks.json b/static/.well-known/assetlinks.json
new file mode 100644
index 000000000..8d3767ae9
--- /dev/null
+++ b/static/.well-known/assetlinks.json
@@ -0,0 +1,13 @@
+[
+ {
+ "relation": ["delegate_permission/common.handle_all_urls"],
+ "target": {
+ "namespace": "android_app",
+ "package_name": "social.flotilla",
+ "sha256_cert_fingerprints": [
+ "D0:2A:2E:82:75:92:4D:E2:13:E8:46:B8:EA:09:15:17:7F:46:7B:D1:49:E3:12:60:F0:01:D3:EF:42:9B:A2:DA",
+ "6D:AF:68:3E:1C:A8:3A:4C:D8:85:73:E9:73:9E:2A:A9:44:C8:5D:56:15:4E:34:42:30:55:7C:FF:ED:4A:D7:8C"
+ ]
+ }
+ }
+]