Hello!
I’m trying to handle custom URLs (e.g., customurl://open?param=value
) that open the app. However, while the app launches via the custom URL as expected, the parameters are not being passed to or are accessible from the iOS-specific implementation.
Currently, if I open a custom URL via Safari, the app gets launched but the custom URL and parameters are not accessible.
customurl://open?hello=test
According to the iOS Docs ( https://developer.apple.com/documentation/xcode/defining-a-custom-url-scheme-for-your-app#Handle-incoming-URLs )
any URLs should be passed to:
func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:] ) -> Bool
I do not register the above application function to be called but instead this one is executed during app start with launchOptions always being nil:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool
This is the case regardless of if the App is started fresh or was already running in the background.
My pInfo entry for the custom URL:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>CFBundleURLName</key>
<string>dev.customurl.project</string>
<key>CFBundleURLSchemes</key>
<array>
<string>customurl</string>
</array>
</dict>
<dict/>
</array>
TLDR: How can I access the parameters, passed with the URL?
Any thoughts on what I am doing wrong?