I am using apple's canOpenURL: and openURL: methods to detect & open other application. But as these methods are deprecated in iOS9, They returns NO.
Is there any alternate to manage this?
Thanks
You need to provide "whitelist" to your plist
<key>LSApplicationQueriesSchemes</key>
<array>
<string>urlscheme</string>
<string>urlscheme2</string>
<string>urlscheme3</string>
<string>urlscheme4</string>
</array>
See for more details
iOS 9 has made a small change to the handling of URL scheme.
More details
Here you can find some information.
as the article said:
Up until iOS 9, apps have been able to call these methods on any arbitrary URLs. Starting on iOS 9, apps will have to declare what URL schemes they would like to be able to check for and open in the configuration files of the app as it is submitted to Apple. This is essentially a whitelist that can only be changed or added to by submitting an update to Apple. It appears that certain common URLs handled by system apps, like “http”, “https”, do not need to be explicitly whitelisted.
In short: Apple wants to prevent apps from being able to scan a user's device and know which apps are installed
So to answer to your question: actually there is no solution, because apple want exactly to prevent this kind of behaviour
In some contexts, if you need to open arbitrary deeplinks, the Universal App Links can be a solution: you point to the website of the app (which needs to implement this behaviour) and iOS 9 will automatically deeplink to the adhoc app.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With