Repository navigation
App Links: Support for FOSDEM Schedule app for Android #318
Description
Activity
Would this benefit all FOSDEM apps or just the one with package name
info.metadude.android.fosdem?Reacted by insomniacOnly that one for now. Feel free to add your SHA256 hashes. But for App Links to function correctly, you will need to configure your app further.
@gerryd Will the JSON file be deployed in time for FOSDEM 2026? Please note that mobile apps cannot be deployed on short notice due to the unforeseeable time taken by the stores.
@johnjohndoe I undortunately don't have time to check (impact etc) this right now; I pinged the co-maintainers internally!
Reacted by Tobias PreussHow does it work: if a users goes to the fosdem website and clicks a schedule link do they get an option to open in the app or the website? Or will it send them to the app immediately?
Strictly speaking the second is maybe not ideal, especially if people go to the website to double check what the app does.I'm not an expert on this but
common.handle_all_urlsreads as if any fosdem.org URL could get intercepted.@johanvdw Clicking a valid session link takes you into the app immediately. That is the main idea of app links. Users can opt-out in the app's "open by default" system settings - or obviously by not installing the app.
Here is a video recording which shows immediate navigation into the app and out to the website from a session link shown in the app.
EventFahrplan/EventFahrplan#843How is determined what is a schedule link and what is not? Is this up to the app? What about other pages on the fosdem website, or schedule pages like fringe? What about subdomains?
The domain, subdomains, paths are to be configured in the app, see e.g. https://github.com/EventFahrplan/EventFahrplan/blob/master/app%2Fsrc%2Fccc39c3%2FAndroidManifest.xml#L19
Only content which is represented in the app should be covered by app links. For FOSDEM this would be restricted to session links.
As discussed during todays FIT meeting we'll just do it for this year.
i'm about to implement it after todays meetingtagging @cbeyls if he also needs this for https://github.com/cbeyls/fosdem-companion-android
tagging @Wilm0r if he also needs this for https://github.com/Wilm0r/giggityReacted by Tobias PreussBit hard to rush out this functionality safely (and it doesn't seem that useful to me), but thanks for the heads-up @bastischubert :)
Trying to finish some other improvements before next weekend though.
Reacted by Sebastian Schubert and Tobias PreussI never liked that gatekeeping system where some apps are pre-approved for deep links and others are not, for me it's up to the user to decide which app they want to use and approve them manually. For example I use NewPipe to watch YouTube videos which Google will never pre-approve.
Also I publish on both F-Droid and Google Play, these are considered different apps because F-Droid uses their own certificate. Did you consider the two certificates for your app @johnjohndoe ?
I may add deep links support at some point but without the pre-approval system.
Reacted by Tobias PreussHow does it work: if a users goes to the fosdem website and clicks a schedule link do they get an option to open in the app or the website? Or will it send them to the app immediately? Strictly speaking the second is maybe not ideal, especially if people go to the website to double check what the app does.
If the app is pre-approved by adding it to that file, it will open the app immediately by default unless the user explicitly disables deep links handling by the app in the OS settings. I agree it's not ideal, I prefer to give the choice by default.
@cbeyls I agree, it would be great if the Android system would ask the user at the first time about their preference. I never saw something like this but on the mentioned system option.
Thanks for the heads up about the F-Droid signing. I haven't thought about it indeed. The build is already reproducible but I haven't found the time to let F-Droid use the same signing key as Google Play. ✔️ I edited the JSON snippet up there now.
@cbeyls I agree, it would be great if the Android system would ask the user at the first time about their preference. I never saw something like this but on the mentioned system option.
Google changed the rules of the game in Android 12. Before Android 12, when any app was able to handle a web link, the OS would ask the user which app to use to open the web link (including staying in the browser) and a checkbox to memorize the choice.
Starting with Android 12, web links are always opened by the browser unless the app is pre-approved or manually selected by the user beforehand from the OS settings.I have no idea what happens if two different pre-approved apps are installed at the same time though. Which one will win or is there a disambiguation dialog for that specific case?
Reacted by insomniacWhen I have a debug version and a release version of the same app installed, then the release version is opened.
TIL: I noticed that the Firefox browser and DuckDuckGo browser apps for Android provide options to users about opening app links.
I don't think this PR works, looking at the build results the file is not included
https://github.com/FOSDEM/website/actions/runs/21334530871and if it does, it would likely require a change in our nginx config (the url should not forward to a specific year)
I don't think this PR works, looking at the build results the file is not included
https://github.com/FOSDEM/website/actions/runs/21334530871and if it does, it would likely require a change in our nginx config (the url should not forward to a specific year)
I have no idea what happens if two different pre-approved apps are installed at the same time though. Which one will win or is there a disambiguation dialog for that specific case?
i'd say, there is only one way to find out ;-)
honestly: from my understanding this should work only if one of the whitelisted apps is already installed on the device anywayI finally deployed the first version of the assetlinks.json - if other apps also need support for this, please either add your details here for 2026 edition or feel free to open a new issue/pr if you like to be included for 2027 (this issue will remain open until this year's edition is wrapped up)
@bastischubert Thank you for your quick help. From what I observed, the integration works great. Happy FOSDEM then!
This ticket can be closed from my point of view.
Context
https://fosdem.org/.well-known/assetlinks.jsonassetlinks.json file
Please add the following file to the public directory
/.well-knownof the FOSDEM website:[ { "relation": [ "delegate_permission/common.handle_all_urls" ], "target": { "namespace": "android_app", "package_name": "info.metadude.android.fosdem.schedule", "sha256_cert_fingerprints": [ "89:4C:4F:D6:CB:AB:E4:C9:F9:2A:43:A8:25:E7:45:25:0A:17:7D:A0:1A:D0:30:1E:DD:22:3C:03:22:C7:C0:03", "FF:A0:BD:6F:43:2A:A8:B4:43:00:24:87:BC:73:27:70:7F:A4:E6:71:FC:8E:F4:51:59:C5:B6:AD:8B:9D:0F:E6" ] } }, { "relation": [ "delegate_permission/common.handle_all_urls" ], "target": { "namespace": "android_app", "package_name": "info.metadude.android.fosdem.schedule.debug", "sha256_cert_fingerprints": [ "D8:E7:B5:B1:50:BB:1E:39:58:A8:AA:E9:95:09:92:68:74:DC:C5:03:79:E5:9C:FD:CC:9A:1B:43:4F:D0:F9:F6" ] } } ]Related