iOS 通过scheme进行应用间跳转
新建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进行应用间跳转相关推荐
- iOS开发实用技术之推送-应用间跳转-社交分享
实用补充 --- 一. 推送通知 1. 什么是推送通知? > 首先明确:**此处的推送通知跟我们的"NSNotification"没有半毛钱关系> 可以理解为: 向用户 ...
- ios 调用系统应用的方法 应用间跳转的方法
声明一个私有方法: #pragma mark - 私有方法 -(void)openUrl:(NSString *)urlStr{//注意url中包含协议名称,iOS根据协议确定调用哪个应用,例如发送邮 ...
- iOS iOS9下实现app间的跳转
自从更新了Xcode7后,苹果公司增加了白名单. 在实现app跳转时,必须把app的唯一标示URL加入到白名单中 - (BOOL)canOpenURL:(NSURL *)url这个方法才会返回yes否 ...
- 应用间跳转/友盟统计/支付宝
应用间跳转/社交分享/第三方登录/应用内统计/支付宝 一.应用间跳转 1.简介 应用间跳转的应用场景 使用第三方登录,需要用户授权,还需要"返回到调用的程序,同时返回授权的用户名" ...
- Android两个app间跳转-deepLink的使用
在开发过程中,经常会遇到两个app之间跳转.或者浏览器链接跳转app的需求,这里简单总结一下. 1.简单的从一个app跳转到另一个app 直接用intent就可以实现. 只要知道目标activity的 ...
- JMP跳转指令的指令长度、直接转移与间接转移、段内跳转与段间跳转
原文链接:https://blog.csdn.net/liuchuo/article/details/51990669 指令长度=操作码的长度+操作数地址的长度 1.段内跳转 JMP指令占1个字节. ...
- (8)JMP FAR段间跳转
一.回顾 在前面的课程中我们学习了MOV和LES等修改段寄存器的指令,当时老师说过,CS寄存器比较特殊,不能用MOV和"LCS"进行修改,原因是CS和EIP共同决定下一条指令的地址 ...
- [保护模式]段间跳转和跨段跳转
文章目录 段间跳转 段寄存器 段间跳转 段间跳转的执行流程 1.段选择子拆分 2.查表得到段描述符 3.权限检查 4.加载段描述符 5.代码执行 总结 跨段跳转 短调用 长调用 跨段不提权 跨段提权 ...
- ios开发跳转safari_阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页
最近为了更好地接触移动Web 开发狠心购买了一台ipad mini(之前一直都是借同学的,借多了就不好意思了).拿来调试DeveMobile 与EaseMobile 主题 时候发现了不少问题,现在在一 ...
最新文章
- Hive Serde、Beeline、JDBC
- (0024)iOS 开发之MJExtension可能遇到全部问题
- golang中的big.Int
- OpenCASCADE:适用于 iOS 的 OCCT 示例
- 数据结构与算法之希尔排序
- 小程序 const moment = require('moment')_C++大作业-XXX管理程序
- andriod手机客户端自动化测试工具整理
- 360浏览器清除缓存_手机中的缓存是什么?
- Mybatis接口方式
- 判断没登录就跳转php,PHP实例:PHP判断用户是否已经登录(跳转到不同页面或者执行不同动作)...
- 百度的AI赛事,正在启蒙一代年轻人
- 【STC单片机】通过ADC外部输入调节PWM占空比输出并串口打印当前脉冲值
- JS时间轴效果(类似于qq空间时间轴效果)
- 查看网页最后修改时间方法以及原理简介
- ArrayBlockingQueue 实现多线程安全 —————— 开开开山怪
- #每日一题 力扣第22题 黑白格子画
- Wireshark 抓取 iphone 测试机的数据包
- JavaWeb开发专题(一)-JavaWeb入门
- Structure of Heap
- 美团基于知识图谱的剧本杀标准化建设与应用
热门文章
- 斯的件佛顶山U树金风科
- Linux基础:基础知识
- html+css中的animation 动画(二)孙悟空巡山
- html字体下沉怎么设置,css如何让字体下沉
- 论文笔记-Multi-view Incremental Segmentation of 3D Point Clouds for Mobile Robots
- “易信”亮点功能的测试报告
- 微信小程序添加开发者
- 小程序进阶-图表库uchart
- 台式电脑怎么进入修复计算机,电脑开机提示自动修复怎么办?电脑开机自动修复处理方法...
- 《SANIC中文用户指南》—读书笔记