https://kotlinlang.org logo
#compose-ios
Title
# compose-ios
j

Joel Denke

03/05/2024, 2:37 PM
Before I implement something myself, I wonder does it exist any way similar to LocalUriHandler handling deeplinks to external apps? As of example in Android can always open another app, like home launcher screen. I want to do the same, but seems the pattern of doing thirdpartyapp:// custom schemes, only working if the app supporting it. But there is NO way of check if an iOS app supporting it, without like asking their iOS devs or such 😄 Is there a generic way of opening native iOS apps from Compose world in iOS? If not, is it even possible native in iOS todo? (I havent found a way doing it generic yet) I dont mind introduce a new framework if needed, but ideally not. The problem is not my own app, the problem is open other apps I cant control myself.
j

Jeff Lockhart

03/05/2024, 6:47 PM
Yes, this is the only way to open other apps in iOS. The custom URL scheme has to be defined and you have to whitelist the URL scheme in your other app to use it. There's no equivalent to Android intents, or the ability to open an arbitrary app by ID, in iOS.
j

Joel Denke

03/05/2024, 7:11 PM
Right and how do I find out which custom schemes all apps using? Can I parse all apps on device which schemes existing or how do I? As of example I was lucky Slack had documentation how open theirs in iOS. Any hacker solution query solving this I am open for. In Android can download APK and open it in Android Studio to check manifest declaration. Can I do similar in iOS, check iOS config files?
An hack did now was opening App Store with id and let user navigate from there or their website. But want native thing and ideally generic pattern for any app.
j

Jeff Lockhart

03/05/2024, 7:21 PM
The schemes have to be whitelisted in your app at compile time. So any lookup at runtime wouldn't be helpful. You have to know all schemes your app supports in order to whitelist them before using in your code, and then building and deploying.
Again, Apple hasn't provided a universal mechanism in iOS to open an arbitrary app. Apps need to publish their own schemes they support. Then you need to whitelist those schemes in your app in order to use them.
j

Joel Denke

03/05/2024, 7:23 PM
Yeah ofc but no hack tool query or parse all apps on an iPhone? Or like download ipa file and analyse it? Nothing exotic here, just want open standard app start page.
And no way launch app without custom schemes? I guess Apple want to protect devs from interact like this?
j

Jeff Lockhart

03/05/2024, 7:28 PM
Yeah, the whitelisting requirement was even introduced later on, preventing the ability to inject arbitrary schemes at runtime. Apple has this pretty locked down.
j

Joel Denke

03/05/2024, 7:30 PM
Yeah well at least Slack works. Just one other app want launching. I did a couple of trial and errors.
j

Jeff Lockhart

03/05/2024, 7:31 PM
If the app doesn't publish a URL scheme to use, they probably don't support it.
j

Joel Denke

03/05/2024, 7:39 PM
Quite sure they do as a lot of deep links in their Android app equivalent :)
j

Jeff Lockhart

03/05/2024, 7:39 PM
They should have it published somewhere in their docs then.
j

Joel Denke

03/05/2024, 7:40 PM
Yeah I wish it was published in app store which schemes they support 😁
2 Views