使用openURL实现程序间带参数跳转详解
使用openURL实现程序间带参数跳转详解
实现的效果:有两款应用A与B,A打开B
A --> B
1. 新建工程B,bundle ID为com.YouXianMing.B
建立一个URL
这么填写(与前面bundle ID类似的写法):
2. 新建工程A,bundle ID随便起,为简单起见,写下如下代码
NSURL *url = [NSURL URLWithString:@"B://com.YouXianMing"];
if ([[UIApplication sharedApplication] canOpenURL:url])
{
NSLog(@"跳转并打开");
[[UIApplication sharedApplication] openURL:url];
}
else
{
NSLog(@"打开失败");
}
先执行B(安装应用B),在执行应用A,你会发现可以正常从A应用跳转到B应用了.
很简单吧!
我们再来实现可以传递参数的
实现的效果:有两款应用A与B,A打开B,并传递一些参数
参数
A -----> B
1. A中代码这么写
// 其他应用的 URL Schemes --> B
// 其他应用的 Identifier --> com.YouXianMing
// values? --> 要传递的参数,方便解析
NSURL *url = [NSURL URLWithString:\
@"B://com.YouXianMing/values?username=WT&password=123456&callback=invoking"];
if ([[UIApplication sharedApplication] canOpenURL:url])
{
NSLog(@"跳转并打开");
[[UIApplication sharedApplication] openURL:url];
}
else
{
NSLog(@"打开失败");
}
2. 在B应用中请添加如下方法到AppDelegate.m中
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
if ([[url scheme] isEqualToString:@"B"])
{
if ([[url host] isEqualToString:@"com.YouXianMing"])
{
/*
query用法 The query string from the URL.
If the receiver does not conform to RFC 1808, returns nil. For example,
in the URL http://www.example.com/index.php?key1=value1&key2=value2,
the query string is key1=value1&key2=value2.
*/
NSString *query = [url query]; // 分割&
NSArray *array = [query componentsSeparatedByString:@"&"]; // 显示数据
NSLog(@"%@", array);
} return YES;
} return NO;
}
3. 执行A程序后,注意观察B程序的打印信息:
2014-04-21 13:06:00.277 B[1683:60b] (
"username=WT",
"password=123456",
"callback=invoking"
)
实现的效果:有两款应用A与B,A打开B并传参数,B打开A并传参数
太简单了,略.
小结:
1. 如果A应用想被B应用打开,需要在A应用中设置URL,在设置中需要设置URL identifier 以及 URL Schemes,作为这个应用的标示
2. A既要打开B,B也能够打开A,那就需要AB两款应用都设置URL了
3. 可以传递字符串的参数
使用openURL实现程序间带参数跳转详解的更多相关文章
- 微信小程序页面带参数跳转
页面传递参数的方式 data-para js获取参数
- 小程序之带参数跳转到tab页
wx.switchTab({ url: '../../message/message/message', }) //wx.switchTab url不能带参数 解决方法⬇️ (紫色表示非固定需要自己更 ...
- 微信小程序页面带参数跳转及接收参数内容navigator
功能从index页面跳转到draw页面,并在draw页面获取id及imgUrl index.wxml <navigator class='looks-view' wx:for="{{i ...
- 微信小程序navigator带参数跳转及接收参数内容
// index.wxml <navigator class='looks-view' wx:for="{{imgUrlNew}}" wx:key="index&q ...
- Java程序调用带参数的shell脚本返回值
Java程序调用带参数的shell脚本返回值 首先来看看linux中shell变量(\(#,\)@,$0,$1,\(2)的含义解释 变量说明: - \)$ Shell本身的PID(ProcessI ...
- 10.vue router 带参数跳转
vue router 带参数跳转 发送:this.$router.push({path:'/news',query:{id:row.id}}) 接收:var id=this.$route.query. ...
- vue-如何实现带参数跳转页面
[前后端分离项目之vue框架经验总结] 文/朱季谦 在vue框架的前端页面上,若要实现页面之间的带参数跳转,可参考以下实现过程: 例如,点击截图中的“查看试卷”,可实现带参跳转到相应的试卷页面,该功能 ...
- linux管道命令grep命令参数及用法详解---附使用案例|grep
功能说明:查找文件里符合条件的字符串. 语 法:grep [-abcEFGhHilLnqrsvVwxy][-A<显示列数>][-B<显示列数>][-C<显示列数>] ...
- (转)linux traceroute命令参数及用法详解--linux跟踪路由命令
linux traceroute命令参数及用法详解--linux跟踪路由命令 原文:http://blog.csdn.net/liyuan_669/article/details/25362505 通 ...
随机推荐
- laravel5.1--数据库操作
1 配置信息 1.1配置目录: config/database.php 1.2配置多个数据库 //默认的数据库 'mysql' => [ 'driver' => 'mysql', 'hos ...
- qt调用仪器驱动库dll实现程控
在<使用qt+visa实现程控>中实现了qt调用visa库的简单Demo本文将尝试使用qt调用仪器驱动库来实现对仪器仪表的程控 开发环境 系统: windows 10 环境: qt 5.8 ...
- 浅谈css中浮动和清除浮动带来的影响
有很多时候,我们都会用到浮动,而我们有时候对浮动只是一知半解,却不是太清楚它到底是怎么回事,不知道各位有没有和我一样的感觉,只知道用它,却不知道它到底是怎么回事,所以,在学习的过程中,就要把一个概念不 ...
- oracle去掉字段值中的某些字符串
我想去掉字段值中的“_” select replace(fdisplayname,'_','') from SHENZHENJM1222.B replace 第一个参数:字段/值,第二个参数时替换字符 ...
- 【转】Serializers 序列化组件
https://www.cnblogs.com/MayDayTime/p/9890582.html 为什么要用序列化组件 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON ...
- OOD沉思录 --- 面向动作与面向对象 --- 避免泛滥成灾的类
3.7 从设计中取出不需要的类 只有Get/Set方法的类不算是一个必要的类,Get/Set方法也不算是有意义的行为.这种类降级为属性更加合适. 3.8 去除系统外部的类 如果一个类只调用系统领域的方 ...
- 长沙理工大学第十二届ACM大赛-重现赛 G - 跑路ing
题目描述 vigoss18 辞职成功终于逃出了公司,但是没过太久,公司就发现vigoss18 的所作所为,于是派人来把他抓 回去. vigoss18 必须一直跑路,躲避公司的围捕.可以抽象的看成一个有 ...
- Java常用工具类之自定义访问对象
package com.wazn.learn.util; import javax.servlet.http.HttpServletRequest; /** * 自定义访问对象工具类 * * 获取对象 ...
- java短信接口调用
java短信接口调用 之前一直在一个传统的单位上班好多听容易的技术都没接触过,即使有时候想搞一搞类似于支付宝支付,短信接口调用,微信公众号,小程序之类等功能,一直有心无力终于跳槽了,估计是氛围的原因吧 ...
- nyoj 269 VF 动规
VF 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 Vasya is the beginning mathematician. He decided to make a ...