相信很多小伙伴即将开始着手 iOS 9 的适配工作了,下面我们就来了解一下 iOS 9 的一项新特性: URLScheme
。
URLScheme 白名单与 canOpenURL: 方法
在 iOS 9 中,苹果针对 URLScheme
又引入了新的白名单概念,在 WWDC 2015 Session 703: Privacy and Your App 中提到:
If you call the "canOpenURL" method on a URL that is not in your whitelist, it will return "NO", even if there is an app installed that has registered to handle this scheme. A "This app is not allowed to query for scheme xxx" syslog entry will appear.
如果在 iOS 9 中调用 canOpenURL:
方法,则所涉及的 URLScheme
必须在 Info.plist
中列入白名单才能使用,否则该方法会返回 NO
。
加入白名单的方法为:
<key>LSApplicationQueriesSchemes</key>
<array>
<string>urlscheme1</string>
<string>urlscheme2</string>
<string>urlscheme3</string>
<string>urlscheme4</string>
</array>
WWDC 2015 Session 703: Privacy and Your App 还有这样一段话:
So for apps that are linked before iOS 9 and are running on iOS 9, they will be given 50 distinct URL schemes.
也就是说,白名单也是有数量上限的,目前这个限制为50个。
此外在iOS 9 中另外一个方法 openURL:
也增加了一个 UIAlertView
形式的确认动作。