[iOS9适配]-- URL Scheme

在iOS9中,如果使用 canOpenURL: 方法,该方法所涉及到的 URL scheme 必须在"Info.plist"中将它们列为白名单(在iOS9及以前的版本设置的上限50个),否则不能使用。key叫做LSApplicationQueriesSchemes ,键值内容如下:

LSApplicationQueriesSchemes

   urlscheme
   urlscheme2
   urlscheme3
   urlscheme4
 

So for apps that are linked before iOS 9 and are running on iOS 9, they will be given 50 distinct URL schemes. When you call the subsequent 51st scheme, you will be returned the value no. These 50 URL schemes are not restarted when the user restarts the device.

苹果为什么要这么做?

在 iOS9 之前,你可以使用 canOpenURL: 监测用户手机里到底装没装微信,装没装微博。但是也有一些别有用心的 App ,这些 App 有一张常用 App 的 URL scheme,然后他们会多次调用canOpenURL: 遍历该表,来监测用户手机都装了什么 App ,比如这个用户装了叫“大姨妈”的App,你就可以知道这个用户是女性,你就可以只推给这个用户女性用品的广告。这是侵犯用户隐私的行为。

这也许就是原因。

常见 URL Scheme
如果想一次性集成最常用的微信、新浪微博、QQ、支付宝四者的白名单,则配置如下:

LSApplicationQueriesSchemes
 
 
wechat 
weixin 
 
sinaweibohd 
sinaweibo 
sinaweibosso 
weibosdk 
weibosdk2.5 
 
mqqapi 
mqq 
mqqOpensdkSSoLogin 
mqqconnect 
mqqopensdkdataline 
mqqopensdkgrouptribeshare 
mqqopensdkfriend 
mqqopensdkapi 
mqqopensdkapiV2 
mqqopensdkapiV3 
mqzoneopensdk 
wtloginmqq 
wtloginmqq2 
mqqwpa 
mqzone 
mqzonev2 
mqzoneshare 
wtloginqzone 
mqzonewx 
mqzoneopensdkapiV2 
mqzoneopensdkapi19 
mqzoneopensdkapi 
mqzoneopensdk 
 
alipay 
alipayshare

其他平台可在下面的列表中查询: 各平台OpenURL白名单说明
查询:https://github.com/ChenYilong/iOS9AdaptationTips (摘自此文)

你可能感兴趣的:([iOS9适配]-- URL Scheme)