iOS App之间跳转
1.先来看看效果,这里做了三个功能
- 从MyApp跳转到YourApp
- 从MyApp跳转到YourApp的指定页面
- 从YourApp使用跳转url的方式跳回MyApp

2.实现app之间的跳转需要注意两方面
- 实现跳转的代码
- 配置url及url白名单
3首先来讲url和白名单的设置
- 创建两个工程分别叫MyApp和YourApp
- 设置MyApp的url,设置的方法有两种,都是等效的,如下图
- 设置YourApp的url
- 设置MyApp的白名单
- 在info.plist中添加LSApplicationQueriesSchemes的数组,其中有含有一个string类型的数据,即为你要跳转的另外一个App的url,我们要从MyApp跳转到YourApp,我们把YourApp的url设置为your,所以这里要写入YourApp的url“your”

- 设置YourApp的白名单,我写的demo中有添加用url跳转回MyApp的功能所以要设置YourApp的白名单,如果没有的话是不用设置的,系统自带的有跳转回初始APP的方法
- 注意不要把白名单的key写错了
4.实现跳转的代码
- MyApp中的代码
- (IBAction)gotoYoueApp:(UIButton *)sender {
// 1.获取application对象
UIApplication *app = [UIApplication sharedApplication]; // 2.创建要打开的应用程序的URL
NSURL *url = [NSURL URLWithString:@"your://aaa"]; // 3.判断是否可以打开另一个应用
if ([app canOpenURL:url]) {
// 能,就打开
[app openURL:url];
}else{
NSLog(@"打开应用失败");
}
}
- YourApp中的代码
- 写在AppDelegate.m中
//如果是通过URL打开的本应用,则下面的方法会被执行
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
//获取window中加载的根视图,也就是那个导航
UINavigationController *navi = (UINavigationController *)self.window.rootViewController;
//为了触发push第二个界面的segue,需要拿到
//左边灰色背景的那个控制器的引用
//而灰色的那个控制器是navi的根视图控制器
//vc代表灰色的那个界面
ViewController *vc = (ViewController *)navi.topViewController; //1.获取请求的URL地址
NSString *urlString = [url absoluteString]; //2.判断地址中包含的信息为bbb则打开第二个页面
if ([urlString hasPrefix:@"your://bbb"])
{
[vc performSegueWithIdentifier:@"pushWhiteSegue" sender:nil];
} return YES;
} //新的用于响应从URL跳转过来的方法
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
//获取window中加载的根视图,也就是那个导航
UINavigationController *navi = (UINavigationController *)self.window.rootViewController;
//为了触发push第二个界面的segue,需要拿到
//左边灰色背景的那个控制器的引用
//而灰色的那个控制器是navi的根视图控制器
//vc代表灰色的那个界面
ViewController *vc = (ViewController *)navi.topViewController; //1.获取请求的URL地址
NSString *urlString = [url absoluteString]; //2.判断地址中包含的信息为bbb则打开第二个页面
if ([urlString hasPrefix:@"your://bbb"])
{
[vc performSegueWithIdentifier:@"pushWhiteSegue" sender:nil];
}
return YES;
}- 想要跳转到MyApp的时候
- (IBAction)goBackMyApp:(id)sender {
UIApplication *app = [UIApplication sharedApplication];
NSURL *url = [NSURL URLWithString:@"my://"];
if ([app canOpenURL:url]) {
[app openURL:url];
}else{
NSLog(@"跳回到myapp失败");
}
}
5.demo:https://github.com/TigerCui/MyAppJumpToYourApp.git
iOS App之间跳转的更多相关文章
- ios两个app之间跳转,传值的实现
两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的. 1.首先设置第一个APP的url地址 2.接着设置第二个AP ...
- iOS应用之间跳转
本篇博文将涉及到以下知识点: app应用跳转的原理解析 如何实现两个app应用之间的跳转 如何实现两个app之间跳转到指定界面 二.应用跳转原理 相信从一个应用跳转到另一个应用大家并不陌生,最常见的莫 ...
- iOS APP之间到跳转,以及热门应用,手机自带到应用跳转
应用之间的跳转 在第一个APP中,做如下操作:1.在info.plist文件中的"信息属性列表"下添加一项:"URL类型"; 2.点开"URL类型&q ...
- iOS App之间常用的五种通信方式及适用场景总结
iOS系统是相对封闭的系统,App各自在各自的沙盒(sandbox)中运行,每个App都只能读取iPhone上iOS系统为该应用程序程序创建的文件夹AppData下的内容,不能随意跨越自己的沙盒去访问 ...
- iOS --- 通过openURL实现APP之间跳转并传递数据
在IOS中,实现一个应用启动另外一个应用,使用UIApplication的openURL:方法就可实现,这里以test跳到test02为例.(需要先创建这两个工程) 注册自定义URL协议(在test中 ...
- ios app下载跳到itunes
<body class="box"> <div class="text"> <a href="https://itune ...
- iOS APP版本更新跳转到App Store下载/更新方法
使用下面的连接即可跳转到App Store itms-apps://itunes.apple.com/cn/app/id*********** 其中********* ...
- iOS App 内部跳转(设置、Wifi、蓝牙...)关键词
1.iOS 10 以前: 蜂窝网络:prefs:root=MOBILE_DATA_SETTINGS_ID Wi-Fi:prefs:root=WIFI 定位服务:prefs:root=LOCATION_ ...
- iOS应用之间的跳转
app应用跳转的原理解析 如何实现两个app应用之间的跳转 如何实现两个app之间跳转到指定界面 二.应用跳转原理 相信从一个应用跳转到另一个应用大家并不陌生,最常见的莫过于第三方登录,支付宝支付等等 ...
随机推荐
- ASP.NET Web API Model-ValueProvider
ASP.NET Web API Model-ValueProvider 前言 前面一篇讲解了Model元数据,Model元数据是在Model绑定中很重要的一部分,只是Model绑定中涉及的知识点比较多 ...
- 我所理解的SOA和微服务
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p/5847441.html SOA和微服务到底是什么关系? 说实话,我确实不明白SOA和微服务到底有什么本质上 ...
- Struts2+Spring+Hibernate框架整合总结详细教程
一.SSH三大框架知识总结 Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架.其全新的Struts 2的体系结构与S ...
- atitit 商业项目常用模块技术知识点 v3 qc29
atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...
- 有关“数据统计”的一些概念 -- PV UV VV IP跳出率等
有关"数据统计"的一些概念 -- PV UV VV IP跳出率等 版权声明:本文为博主原创文章,未经博主允许不得转载. 此文是本人工作中碰到的,随时记下来的零散概念,特此整理一下. ...
- iOS-开发进阶
iOS完整学习路线图 iOS进阶介绍: 一.iOS-常用的第三方框架的介绍 二.iOS-提高iOS开发效率的方法和工具 三.常用的调试方法 1.iOS-调试技巧 2.iOS-Xcode的使用技巧 四. ...
- SpringMVC+MyBatis整合——事务管理
项目一直没有做事务管理,这几天一直在想着解决这事,今天早上终于解决了.接下来直接上配置步骤. 我们项目采用的基本搭建环境:SpringMVC.MyBatis.Oracle11g.WebLogic10. ...
- JavaScript权威设计--JavaScript对象(简要学习笔记八)
1.属性的特性 一个属性包含一个名字和4个特性.4个特性:值,可写性,可枚举性,可配置性 2.对象的三个属性 一:原型属性 要想检测一个对象是否是另一个对象的原型,使用isPrototypeOf( ...
- [转]Linux中configure/makefile
本文教你如何使用autoconf.automake等来制作一个以源代码形式(.tar.gz)发布的软件.并可在执行configure时使用自定义参数. 一.概述和基础知识 在Linux下得到一个以源代 ...
- 《ES6基础教程》之 map、forEach、filter indexOf 用法
1,map,对数组的每个元素进行一定操作,返回一个新的数组. var oldArr = [{first_name:"Colin",last_name:"Toh" ...



