新建DemoA和DemoB两个工程
一、DemoA跳转到DemoB,然后从DemoB返回到DemoA
二、DemoA跳转到DemoB的指定控制器

一、DemoA跳转到DemoB,然后从DemoB返回到DemoA

1、DemoA

1、新建DemoA空工程
2、找到TARGETS,在URL Types中添加URL Schemes为demoA
3、在info.plist文件中添加LSApplicationQueriesSchemes,Type选择Array,添加item0为demoB

2、DemoB

1、新建DemoB空工程
2、找到TARGETS,在URL Types中添加URL Schemes为demoB
3、在info.plist文件中添加LSApplicationQueriesSchemes,Type选择Array,添加item0为demoA

3、DemoA 跳转 DemoB,在DemoA的ViewController中添加下面方法

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {NSURL *url = [NSURL URLWithString:@"demoB://"];if ([[UIApplication sharedApplication] canOpenURL:url]) {[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];} else {NSLog(@"未安装demoB");}
}

4、DemoB 返回 DemoA,在DemoB的ViewController中添加下面方法

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {NSURL *url = [NSURL URLWithString:@"demoA://"];if ([[UIApplication sharedApplication] canOpenURL:url]) {[[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil];} else {NSLog(@"未安装demoA");}
}

5、这样DemoA和DemoB之间就可以相互跳转

二、DemoA跳转到DemoB的指定控制器

1、使用SceneDelegate,目前仅最低支持iOS13,在SceneDelegate.m中添加以下方法即可,TestViewController为新建的控制器

- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {if (@available(iOS 13.0, *)) {UIOpenURLContext *a = URLContexts.allObjects.firstObject;if ([a.URL.absoluteString containsString:@"PageOneViewController"]) {TestViewController *vc = [[TestViewController alloc] init];[self.window.rootViewController presentViewController:vc animated:true completion:nil];}}
}

2、删除SceneDelegate,直接在AppDelegate中实现以下方法即可

删除SceneDelegate:
1、直接删除SceneDelegate.h 和 SceneDelegate.m
2、在AppDelegate.m中删除UISceneSession的两个代理方法
3、在info.plist中删除Application Scene Manifest

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {if ([url.absoluteString containsString:@"TestViewController"]) {TestViewController *vc = [[TestViewController alloc] init];[self.window.rootViewController presentViewController:vc animated:true completion:nil];}return YES;
}

iOS 通过scheme进行应用间跳转相关推荐

  1. iOS开发实用技术之推送-应用间跳转-社交分享

    实用补充 --- 一. 推送通知 1. 什么是推送通知? > 首先明确:**此处的推送通知跟我们的"NSNotification"没有半毛钱关系> 可以理解为: 向用户 ...

  2. ios 调用系统应用的方法 应用间跳转的方法

    声明一个私有方法: #pragma mark - 私有方法 -(void)openUrl:(NSString *)urlStr{//注意url中包含协议名称,iOS根据协议确定调用哪个应用,例如发送邮 ...

  3. iOS iOS9下实现app间的跳转

    自从更新了Xcode7后,苹果公司增加了白名单. 在实现app跳转时,必须把app的唯一标示URL加入到白名单中 - (BOOL)canOpenURL:(NSURL *)url这个方法才会返回yes否 ...

  4. 应用间跳转/友盟统计/支付宝

    应用间跳转/社交分享/第三方登录/应用内统计/支付宝 一.应用间跳转 1.简介 应用间跳转的应用场景 使用第三方登录,需要用户授权,还需要"返回到调用的程序,同时返回授权的用户名" ...

  5. Android两个app间跳转-deepLink的使用

    在开发过程中,经常会遇到两个app之间跳转.或者浏览器链接跳转app的需求,这里简单总结一下. 1.简单的从一个app跳转到另一个app 直接用intent就可以实现. 只要知道目标activity的 ...

  6. JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转

    原文链接:https://blog.csdn.net/liuchuo/article/details/51990669 指令长度=操作码的长度+操作数地址的长度 1.段内跳转 JMP指令占1个字节. ...

  7. (8)JMP FAR段间跳转

    一.回顾 在前面的课程中我们学习了MOV和LES等修改段寄存器的指令,当时老师说过,CS寄存器比较特殊,不能用MOV和"LCS"进行修改,原因是CS和EIP共同决定下一条指令的地址 ...

  8. [保护模式]段间跳转和跨段跳转

    文章目录 段间跳转 段寄存器 段间跳转 段间跳转的执行流程 1.段选择子拆分 2.查表得到段描述符 3.权限检查 4.加载段描述符 5.代码执行 总结 跨段跳转 短调用 长调用 跨段不提权 跨段提权 ...

  9. ios开发跳转safari_阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页

    最近为了更好地接触移动Web 开发狠心购买了一台ipad mini(之前一直都是借同学的,借多了就不好意思了).拿来调试DeveMobile 与EaseMobile 主题 时候发现了不少问题,现在在一 ...

最新文章

  1. Hive Serde、Beeline、JDBC
  2. (0024)iOS 开发之MJExtension可能遇到全部问题
  3. golang中的big.Int
  4. OpenCASCADE:适用于 iOS 的 OCCT 示例
  5. 数据结构与算法之希尔排序
  6. 小程序 const moment = require('moment')_C++大作业-XXX管理程序
  7. andriod手机客户端自动化测试工具整理
  8. 360浏览器清除缓存_手机中的缓存是什么?
  9. Mybatis接口方式
  10. 判断没登录就跳转php,PHP实例:PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)...
  11. 百度的AI赛事,正在启蒙一代年轻人
  12. 【STC单片机】通过ADC外部输入调节PWM占空比输出并串口打印当前脉冲值
  13. JS时间轴效果(类似于qq空间时间轴效果)
  14. 查看网页最后修改时间方法以及原理简介
  15. ArrayBlockingQueue 实现多线程安全 —————— 开开开山怪
  16. #每日一题 力扣第22题 黑白格子画
  17. Wireshark 抓取 iphone 测试机的数据包
  18. JavaWeb开发专题(一)-JavaWeb入门
  19. Structure of Heap
  20. 美团基于知识图谱的剧本杀标准化建设与应用

热门文章

  1. 斯的件佛顶山U树金风科
  2. Linux基础:基础知识
  3. html+css中的animation 动画(二)孙悟空巡山
  4. html字体下沉怎么设置,css如何让字体下沉
  5. 论文笔记-Multi-view Incremental Segmentation of 3D Point Clouds for Mobile Robots
  6. “易信”亮点功能的测试报告
  7. 微信小程序添加开发者
  8. 小程序进阶-图表库uchart
  9. 台式电脑怎么进入修复计算机,电脑开机提示自动修复怎么办?电脑开机自动修复处理方法...
  10. 《SANIC中文用户指南》—读书笔记