URL Scheme

前言

由于苹果推出了“沙盒机制”,各个APP之间不能互相访问,但是我们在使用时经常会出现APP之间跳转的情况,这就是URL Scheme的用处了

简介

URL Scheme类似于URL,可以通过该APP的URL Scheme来定位到该APP,当然定位只是最基本的用法

概览

things:///add?title=正文内容&note=备注

  1. 连接头:things,它是启动一个应用的URL,比如:weixin
  2. 连接头和命令之间的:,还有//或者///
  3. 动作:add,指打开该APP后进行的动作
  4. 动作和参数之间的?
  5. 参数:titlenote
  6. 参数和值之间同样使用=
  7. 值:正文内容和备注(参数和值的使用类似于URL)
  8. 一组参数和另一组参数之间是&

细则

  1. Scheme
    对于URL来说它就是协议,但是在iOS里就是启动一个应用的URL,如果单纯只是想启动一个应用的URL使用“连接头+冒号”就可以,例如:weixin:
  2. 斜线数量
    举个例子,我在某平台登录了AB两个账号,现在登的是A号,但是想使用B号发布文章,就可以用things://B/post,将会直接使用B号并且在发布文章页面,而如果是things:///post,就不会切换到B号。也就是说/////的一种省略使用场景的形式

URL Scheme的用法

  1. 添加
    在这里插入图片描述

  2. 使用

查看用户是否安装该APP

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"***://***"]]) { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"***://***"]]; 
}else{ 
     //提示用户未安装app 
}

如果其他APP打开了自己的APP,也会触发自己的代理方法

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url NS_DEPRECATED_IOS(2_0, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED; 
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication annotation:(id)annotation NS_DEPRECATED_IOS(4_2, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED; 
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*, id> *)options NS_AVAILABLE_IOS(9_0); // no equiv. notification. return NO if the application can't open for some reason

为了防止APP疯狂遍历用户手机上的APP,窥探隐私,iOS 9后苹果为URL Scheme添加了白名单,开发者需要在白名单中注册自己APP要用到的URL Scheme,而白名单是有数量限制的,最多50个,在iOS 9中不在白名单中注册的话,利用URL Scheme是打不开其他APP的

参考文献

入门 iOS 自动化:读懂 URL Schemes
iOS URL Scheme

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值