Skip to content

Add Documentation for Android Deep Link Handling #12075

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions admin_manual/configuration_server/android_deep_link_handling.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
==========================
Android Deep Link Handling
==========================

Deep linking in Android allows your application to be launched directly from a URL,
making it easier for users to navigate to specific content within your app.
Starting from Android 12, handling deep links requires additional configuration
using an ``assetlinks.json`` file to ensure the app and the host domain are properly
associated.

Android 11 and Below
--------------------
For Android 11 and below, deep linking is straightforward and does not require additional
configuration beyond the usual manifest settings.

Android 12 and Above
--------------------
For Android 12 and above, an additional configuration step is required to verify the
relationship between your app and the host domain using the ``assetlinks.json`` file.

Creating assetlinks.json
~~~~~~~~~~~~~~~~~~~~~~~~
Create a file named ``assetlinks.json`` and host it in the .well-known directory of
your website (e.g., https://www.cloud.example.com/.well-known/assetlinks.json).

Example ``assetlinks.json``::

[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.cloud.example.nextcloud",
"sha256_cert_fingerprints": [
"FB:00:95:22:F6:5E:25:80:22:61:B6:7B:10:A4:5F:D7:0E:61:00:31:97:6F:40:B2:8A:64:9E:15:2D:ED:03:73"
]
}
}
]

Nextcloud Configuration Limitation
==================================
Due to the additional requirement of hosting an ``assetlinks.json`` file
for Android 12 and above, Nextcloud cannot configure the Android client
for all different hosts. This is because each host needs its own ``assetlinks.json``
file to establish a verified relationship with the app, and Nextcloud cannot manage
this file for every possible host domain.
1 change: 1 addition & 0 deletions go.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
'admin-warnings' => '/admin_manual/configuration_server/security_setup_warnings.html',
'admin-windows-compatible-filenames' => '/admin_manual/configuration_files/windows_compatible_filenames.html',
'admin-workflowengine' => '/admin_manual/file_workflows/index.html',
'admin-android-deep-link-handling' => 'admin_manual/configuration_server/android_deep_link_handling.html',

'developer-manual' => '/developer_manual',
'developer-backports' => '/developer_manual/getting_started/development_process.html#bugfixes',
Expand Down