2.iOS:App之间的相互跳转

摘要:

网络上,关于 iOS应用跳转的教程非常的多,我就不一一概述了,在这里总结一下大概流程,便以后使用.

1.创建两个app

2.设置两个 app 各自的URL Schemes 值

3.开启两个 app 的白名单

4.进行应用跳转


详细:

1.创建两个app

这个就不多说了,我在这里创建的两个 app 分别是 App1和 App2.

2.设置两个 app 各自的URL Schemes 值

URL schemes 值是用来标注当前 app,app 之间的弹跳主要是通过甄别这个值进行弹跳的. 设置方法有两种,一种是通过  info plist 文件,一种是通过 Targets -> info -> URL Schemes

在 App1中的设置:

第一种:Targets -> info -> URL

2.iOS:App之间的相互跳转_第1张图片
设置App1的 url schemes 值

第二种: 配置 info plist 文件

2.iOS:App之间的相互跳转_第2张图片
通过 plist 文件配置

在 App2中的设置:

2.iOS:App之间的相互跳转_第3张图片
第一种配置方式
2.iOS:App之间的相互跳转_第4张图片
第二种配置方式

注意: URL Schemes 设置的当前 app 自己的标示.

3.开启两个 app 的白名单

要进行应用跳转,要开启白名单才能进行跳转.

APP1中的操作:

在项目的 info plist 文件中添加LSApplicationQueriesSchemes数组,然后添加 item 为 string 类型,值设置为要绑定跳转关系的 app 的 URL Schemes.

App1中的设置:

App1开启白名单

App2中的操作:

App2开启白名单

4.进行跳转的处理

<1>跳转端的操作

```-(void)buttonAction:(UIButton*)tb{

NSURL*url = [NSURLURLWithString:@"App2:"];

if([[[UIDevicecurrentDevice]systemVersion]floatValue] >=10.0) {

// iOS 10 code

[[UIApplicationsharedApplication]openURL:urloptions:@{UIApplicationOpenURLOptionsOpenInPlaceKey:@"1"}completionHandler:^(BOOLsuccess) {

//回调

if(!success) {

NSLog(@"success");

}

}];

}

else{

// < iOS 9 code

BOOLresult = [[UIApplicationsharedApplication]canOpenURL:url];

if(result ==YES) {

[[UIApplicationsharedApplication]openURL:url];

}

}

}```

2.iOS:App之间的相互跳转_第5张图片
App1中的操作

注意:

(1)在这里,跳转是通过一个 URL 进行跳转的,所以这里我们设置的跳转地址要符合URL的格式, 例如:直接跳入应用: App2:, 跳入应用 a 界面: App2:a ,跳入应用 a 界面加传值: App2:a?balabala......

(2)iOS10之后,关于跳转的方法进行了重写, openURL 被弃用,启用了```[UIApplication sharedApplication]openURL:<#(nonnull NSURL *)#> options:<#(nonnull NSDictionary *)#> completionHandler:<#^(BOOL success)completion#>```

<2>接收端的操作

在跳转成功之后,在被跳转的应用中会调用`-(BOOL)application:(UIApplication*)application handleOpenURL:(NSURL*)url`方法,在这里设置你要做的事.

2.iOS:App之间的相互跳转_第6张图片
进行操作

后言

互联网时代的今天,我们都是站在巨人的肩膀上看着这个世界,共勉!

附上 github:GitHub - Memsory/JianShu,多谢star

你可能感兴趣的:(2.iOS:App之间的相互跳转)