摘要:
网络上,关于 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
第二种: 配置 info plist 文件
在 App2中的设置:
注意: URL Schemes 设置的当前 app 自己的标示.
3.开启两个 app 的白名单
要进行应用跳转,要开启白名单才能进行跳转.
APP1中的操作:
在项目的 info plist 文件中添加LSApplicationQueriesSchemes数组,然后添加 item 为 string 类型,值设置为要绑定跳转关系的 app 的 URL Schemes.
App1中的设置:
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];
}
}
}```
注意:
(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`方法,在这里设置你要做的事.
后言
互联网时代的今天,我们都是站在巨人的肩膀上看着这个世界,共勉!
附上 github:GitHub - Memsory/JianShu,多谢star