Is there an alternative to (the deprecated) canOpe

2019-04-08 17:15发布

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

3条回答
爷的心禁止访问
2楼-- · 2019-04-08 17:38

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

查看更多
我命由我不由天
3楼-- · 2019-04-08 17:43

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.

查看更多
爱情/是我丢掉的垃圾
4楼-- · 2019-04-08 17:51

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

查看更多
登录 后发表回答