iOS项目中的URL|iOS项目中的URL Schemes与白名单
在项目中对接支付、分享等第三方框架的时候,经常会用到URL Scheme和白名单等的配置,一直都是照着文档直接配置,没有理解它的作用。 最近写分享的时候分享静态页面,后台问我要一个iOS协议,用于跳转appstore的下载地址,没有搞明白就百度了一下,搜了很多文章,终于搞明白了它的作用。现在就来总结一下吧。
- URL Scheme是什么
- URL:简单的比如:www.apple.com就是一个url,我们也叫它链接或网址。
- Scheme:表示的是一个 URL 中最初始的位置,即 ://之前的那段字符。比如www.apple.com这个网址的 Schemes是 http。
2. URL Scheme如何设置
我们可以理解,如果想要其他应用识别出我们的应用,比如在支付完成后从支付宝跳转回我们的应用或者分享结束后返回我们的应用,就需要将我们应用设置的URL scheme告诉其他应用。那么如何设置URL scheme呢?下面我们就来试一试吧。
首先选中工程的target->info->URL Types
在URL Schemes中设置自己应用的scheme就可以了。
【iOS项目中的URL|iOS项目中的URL Schemes与白名单】这时我们的info.plist就变成了这样:
这样,当我们调起支付宝或其他应用时,将已经设置好的scheme传给他们就可以了。一般情况下一个应用只需要一个且唯一的scheme就可以了,但是当我们集成了第三方应用,比如友盟分享时,他会要求我们按照一个标准来设置应用的scheme,这时我们可以根据需要多添加一个scheme。
- 配置URL scheme的白名单
canOpenURL:
方法先判断能否打开这个url,然后再用
openURL
方法打开该URL的。这样可以带来更好的用户体验。 因为iOS9的时候苹果加强了权限,只有在info.plist文件中加入了URL Schemes白名单才能使用canOpenURL:
方法来判断是否能打开该url。该白名单的上限是50个。也就是说,你最多只能使用canOpenURL:
方法判断50个URL Schemes。当然,平常我们都用不了那么多,就算是集成分享功能,50个肯定够了。备注:只是对我们需要在MyApp的info.plist里面将canOpenURL:
方法有限制,openURL:
方法是没有限制的。
weixin
设置为白名单。步骤:点击info.plist->右键->Open As->Source Code->添加下面的代码
LSApplicationQueriesSchemes weixin复制代码
这样就可以了。
推荐阅读
- 热闹中的孤独
- JS中的各种宽高度定义及其应用
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- 2020-04-07vue中Axios的封装和API接口的管理
- Android中的AES加密-下
- 放下心中的偶像包袱吧
- C语言字符函数中的isalnum()和iscntrl()你都知道吗
- C语言浮点函数中的modf和fmod详解
- C语言中的时间函数clock()和time()你都了解吗