iOS两个APP之间的通信

本文详细介绍了如何在iOS中通过配置info.plist文件和URLScheme实现两个APP间的通信。包括设置URLScheme、添加到白名单、使用openURL方法及iOS10后的options参数详解。
摘要由CSDN通过智能技术生成

我们知道,ios可以使用openUrl可以打开一个网页,电话等;同样它也可以实现两个APP之间的通信;
两个APP之间的通信,都需要配置info.plist文件,添加URL Scheme,并把对应的URL Scheme 对方的白名单中。下面咱们看看具体实现:

1 、首先创建两个空项目 ProjectDemo 和 ProjectTwoDemo 并给它们添加对于的URL Scheme

给ProjectDemo 添加URL Scheme 这里使用项目的名字ProjectDemo
给ProjectTwoDemo 添加URL Scheme 这里使用项目的名字ProjectTwoDemo
如图
在这里插入图片描述

在这里插入图片描述
2 将ProjectDemo和ProjectTwoDemo两个项目中设置的URL Scheme的对应的值,加入到对应项目的白名单中

首先 再第一个项目ProjectDemo中的info.plist文件中加入 LSApplicationQueriesSchemes 设置array,
里面添加Item 设置为ProjectTwoDemo项目设置的 URL Scheme ProjectTwoDemo
如图
在这里插入图片描述
其次 再第二个项目ProjectTwoDemo中的info.plist文件中加入 LSApplicationQueriesSchemes 设置array,
里面添加Item 设置为ProjectDemo项目设置的 URL Scheme ProjectDemo
(同理如果要跳转到其他app,将对应项目的URL Scheme加入到LSApplicationQueriesSchemes 数组中即可)如图

在这里插入图片描述

3 项目具体实现

如图 ProjectTwooDemo
在这里插入图片描述
如图 ProjectDemo 实现
在这里插入图片描述
详解 iOS 10 之后的方法 [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];中Options 参数;
UIApplication 的头文件中列了一个可用在 options字典中的key:

  • UIApplicationOpenURLOptionUniversalLinksOnly:可以设置布尔值,如果设置为true(YES),则只能打开应用里配置好的有效通用链接。如果应用程序没有配置,或者用于禁止打开这个链接,则 completion handler 回调里的success为false(NO)。

为了覆写程序的默认动作(默认这个key的值是NO),我们需要创建一个字典,将对应的key 设置为true(YES),然后将字典传给 options 参数:

NSDictionary *options = @{UIApplicationOpenURLOptionUniversalLinksOnly : @YES};
[application openURL:URL options:options completionHandler:nil];

附带 demo

github demo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值