区块链技术博客
www.b2bchain.cn

iOS APP间通信求职学习资料

本文介绍了iOS APP间通信求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

前言

苹果对每个APP进程设计了诸多限制,所以能够进行APP间通信的方法并不多,目前有两个API:

API

- (BOOL)openURL:(NSURL*)url; - (void)openURL:(NSURL*)url options:(NSDictionary<UIApplicationOpenExternalURLOptionsKey, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion;

两个API作用一样,不过第一个API在iOS10之上被废弃了(但是iOS10以上也能用),第二个API只有在iOS10以上才能用(这个确实是iOS10及其以下是用不了的)

不过APP1要跳转到APP2,首先要在APP2中设置schema:target->Info->增加URL Types->边界schema,比如demo

那么APP1就可以写如下代码跳转到APP2:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"demo://"] options: completionHandler:^(BOOL success) {     NSLog(@"URL Schema success"); }];

拦截

当然,一个APP也可以注册多个不同的schema,甚至也可以注册其他APP的schema(比如微信/支付宝),以达到URL Schema拦截的目的

iOS 官方说明:”在多个应用程序注册了同一种 URL Scheme 的时候,iOS 系统程序的优先级高于第三方开发程序。但是如果一种URL Scheme 的注册应用程序都是第三方开发的,那么这些程序的优先级关系是不确定的。

判断

如果要跳转的schema不存在,是不会有任何反应的,但是没有任何提示APP Store可能会审核不通过,所以要使用canOpenUrl:方法来判断:

前言

苹果对每个APP进程设计了诸多限制,所以能够进行APP间通信的方法并不多,目前有两个API:

API

- (BOOL)openURL:(NSURL*)url; - (void)openURL:(NSURL*)url options:(NSDictionary<UIApplicationOpenExternalURLOptionsKey, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion;

两个API作用一样,不过第一个API在iOS10之上被废弃了(但是iOS10以上也能用),第二个API只有在iOS10以上才能用(这个确实是iOS10及其以下是用不了的)

不过APP1要跳转到APP2,首先要在APP2中设置schema:target->Info->增加URL Types->边界schema,比如demo

那么APP1就可以写如下代码跳转到APP2:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"demo://"] options: completionHandler:^(BOOL success) {     NSLog(@"URL Schema success"); }];

拦截

当然,一个APP也可以注册多个不同的schema,甚至也可以注册其他APP的schema(比如微信/支付宝),以达到URL Schema拦截的目的

iOS 官方说明:”在多个应用程序注册了同一种 URL Scheme 的时候,iOS 系统程序的优先级高于第三方开发程序。但是如果一种URL Scheme 的注册应用程序都是第三方开发的,那么这些程序的优先级关系是不确定的。

判断

如果要跳转的schema不存在,是不会有任何反应的,但是没有任何提示APP Store可能会审核不通过,所以要使用canOpenUrl:方法来判断:

前言

苹果对每个APP进程设计了诸多限制,所以能够进行APP间通信的方法并不多,目前有两个API:

API

- (BOOL)openURL:(NSURL*)url; - (void)openURL:(NSURL*)url options:(NSDictionary<UIApplicationOpenExternalURLOptionsKey, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion;

两个API作用一样,不过第一个API在iOS10之上被废弃了(但是iOS10以上也能用),第二个API只有在iOS10以上才能用(这个确实是iOS10及其以下是用不了的)

不过APP1要跳转到APP2,首先要在APP2中设置schema:target->Info->增加URL Types->边界schema,比如demo

那么APP1就可以写如下代码跳转到APP2:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"demo://"] options: completionHandler:^(BOOL success) {     NSLog(@"URL Schema success"); }];

拦截

当然,一个APP也可以注册多个不同的schema,甚至也可以注册其他APP的schema(比如微信/支付宝),以达到URL Schema拦截的目的

iOS 官方说明:”在多个应用程序注册了同一种 URL Scheme 的时候,iOS 系统程序的优先级高于第三方开发程序。但是如果一种URL Scheme 的注册应用程序都是第三方开发的,那么这些程序的优先级关系是不确定的。

判断

如果要跳转的schema不存在,是不会有任何反应的,但是没有任何提示APP Store可能会审核不通过,所以要使用canOpenUrl:方法来判断:

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » iOS APP间通信求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们