美文网首页iOS开发技术讨论iOS程序猿
[iOS9适配]-- URL Scheme

[iOS9适配]-- URL Scheme

作者: 程序媛coco | 来源:发表于2015-10-09 16:35 被阅读2355次

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

    <key>LSApplicationQueriesSchemes</key>
    <array>
       <string>urlscheme</string>
       <string>urlscheme2</string>
       <string>urlscheme3</string>
       <string>urlscheme4</string>
    </array> 
    

    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、支付宝四者的白名单,则配置如下:

    <key>LSApplicationQueriesSchemes</key>
    <array> 
    <!-- 微信 URL Scheme 白名单--> 
    <string>wechat</string> 
    <string>weixin</string> 
    <!-- 新浪微博 URL Scheme 白名单--> 
    <string>sinaweibohd</string> 
    <string>sinaweibo</string> 
    <string>sinaweibosso</string> 
    <string>weibosdk</string> 
    <string>weibosdk2.5</string> 
    <!-- QQ、Qzone URL Scheme 白名单--> 
    <string>mqqapi</string> 
    <string>mqq</string> 
    <string>mqqOpensdkSSoLogin</string> 
    <string>mqqconnect</string> 
    <string>mqqopensdkdataline</string> 
    <string>mqqopensdkgrouptribeshare</string> 
    <string>mqqopensdkfriend</string> 
    <string>mqqopensdkapi</string> 
    <string>mqqopensdkapiV2</string> 
    <string>mqqopensdkapiV3</string> 
    <string>mqzoneopensdk</string> 
    <string>wtloginmqq</string> 
    <string>wtloginmqq2</string> 
    <string>mqqwpa</string> 
    <string>mqzone</string> 
    <string>mqzonev2</string> 
    <string>mqzoneshare</string> 
    <string>wtloginqzone</string> 
    <string>mqzonewx</string> 
    <string>mqzoneopensdkapiV2</string> 
    <string>mqzoneopensdkapi19</string> 
    <string>mqzoneopensdkapi</string> 
    <string>mqzoneopensdk</string> 
    <!-- 支付宝 URL Scheme 白名单--> 
    <string>alipay</string> 
    <string>alipayshare</string>
    </array>
    

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

    相关文章

      网友评论

      • 奔跑吧小蚂蚁:你是不是有病啊 谁说白名单只能配置50个啊
        奔跑吧小蚂蚁:@Rm1210 你这人时被人家抢了节操啊 说话像吃了屎一样臭 你以为你是什么吊人啊
        程序媛coco:谢谢提醒,具体应该是iOS9及之前的版本是只支持配置50个,已在原文修改~
        Notwol奇想录:不管是不是只能50个,只看出了你有病

      本文标题:[iOS9适配]-- URL Scheme

      本文链接:https://www.haomeiwen.com/subject/mqsncttx.html