使用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 通 ...
随机推荐
- Valid Parentheses——栈经典
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the inpu ...
- 强大的PHP一句话后门
强悍的PHP一句话后门 这类后门让网站.服务器管理员很是头疼,经常要换着方法进行各种检测,而很多新出现的编写技术,用普通的检测方法是没法发现并处理的. 今天我们细数一些有意思的PHP一句话木马. 1 ...
- 【前端笔记】浅谈js继承
我们先想想我们用js最后要怎样实现面向对象的编程.事实上我们必须用上原型链这种东西. 我们的父类superType有属性和方法,并且一些能被子类subType继承,一些能被覆盖,但是丝毫不会影响到父类 ...
- Charles----- 4.2.7 版本 破解方法
打开Charles,点击help,选择registered........ 输入信息: Registered Name: https://zhile.io License Key: 48891cf20 ...
- MySQL的表管理
首先,先选择数据库(极其特别重要,如果不选择,将默认为第一个数据库) mysql > use db_name; 查看所有表 mysql > show tables; 1.创建表 creat ...
- C#后台获取ajax传来的xml格式数据值
前台: var xml = "<root>"; if(Name!=null) { xml += "<name>"+Name +" ...
- 隐藏当前Activity而不关闭
startActivity后调用 overridePendingTransition(R.anim.zoomin, R.anim.zoomout); 可以实现Activity跳转的动画效果 打开act ...
- 【LeetCode】shell
195. Tenth Line 输出file.txt中的第十行 答案: # Read from the file file.txt and output the tenth line to stdou ...
- OpenGL的一些重要函数记录
glViewport - set the viewport https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glViewport.x ...
- Redis学习篇(十一)之发布订阅
PUBLISH/SUBSCRIBE 发布订阅的原理 包含两个角色,一个是发布者, 一个是订阅者 订阅者可以订阅一个或者多个频道(channel) 发布者可以向指定的频道发布信息 通过SUBSCRIBE ...