iOS跳转到另一个程序
我这里只是写了部分东西,如果想看更加详细的,请点击原文链接.

application:handleOpenURL:方法中处理传递给应用程序的URL请求。如果您已经为自己 的应用程序注册了定制的URL模式,则务必在委托中实现这个方法。二, 调用IOS自带的应用
上面讲述的是调用自身的应用,讲解了如何在自己应用之间调用问题,今天介绍一下如果调用IOS自带的app的方法
一、调用app store界面方法
在实际开发中,往往要推荐自己其他应用和推荐自己的收费软件,那么我们就需要在程序中直接连接到app store的相应页面。
实际上的做法很简单,使用的还是UIApplication类的OpenURL方法:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"程序的相应连接"]];
二、调用其它应用的方法
1)调用 自带mail
[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"mailto://admin@hzlzh.com"]];
2)调用 电话phone
[[UIApplication sharedApplication] openURL:[NSURLURLWithString:@"tel://8008808888"]];
3)调用 SMS
[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"sms://800888"]];
4)调用自带 浏览器 safari
[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@"http://www.hzlzh.com"]];
5)调用 Remote
[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@"remote://fff"]];
上面是最基本的语句,没什么处理过程。
如:调用phone可以传递号码,调用SMS只能设定号码,不能初始化SMS内容。
下面时程序中需要配置的地方
在目标程序的plist文件里面修改:
打开xxxx-info.plist,添加一项URL types
打开URL types,将item0的URL identifier修改为URL Schems
展开URL Schemes,将item0的内容修改为xxxApp(此为跳转的key)
如下图所示:
在程序里面需要跳转的地方,添加代码
NSURL *myUrl = [NSURL URLWithString:@"xxxApp://abcde"]; //xxxApp为目标App跳转的key
if([[UIApplication sharedApplication] canOpenURL:myUrl]){
[[UIAppliactioin sharedApplication] openURL:myUrl];
}
这样就可以实现跳转了。
2,配置URL Scheme
a,展开URL types,再展开Item1,将Item1下的URL identifier修改为URL Scheme
b,展开URL Scheme,将Item1的内容修改为myapp
(其他应用可通过”myapp://“来访问此自定义URL的应用程序)

3,其他应用的跳转
作为调用者的我,需要通过:
|
1
2
3
|
NSString *paramStr = [NSString stringWithFormat:@"myAppTest://username=%@&age=%@&address=%@", @"test123", @"100", @"上海市"]; NSURL *url = [NSURL URLWithString:[paramStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; [[UIApplication sharedApplication] openURL:url]; |
这段代码来跳转目标应用并传递参数。
4,参数的接收
那么作为一个Provider怎么去接收Customer传递过来的参数呢?
首先,在找到项目中的AppDelegate.m文件,然后找到openURL方法(如果没有就去实现它)。OK,到这里你已经完成了90%了,接着继续
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ NSString *urlStr = [url absoluteString]; if ([urlStr hasPrefix:@"myAppTest://"]) { NSLog(@"TestAppDemo1 request params: %@", urlStr); urlStr = [urlStr stringByReplacingOccurrencesOfString:@"myAppTest://" withString:@""]; NSArray *paramArray = [urlStr componentsSeparatedByString:@"&"]; NSLog(@"paramArray: %@", paramArray); NSMutableDictionary *paramsDic = [[NSMutableDictionary alloc] initWithCapacity:0]; for (int i = 0; i < paramArray.count; i++) { NSString *str = paramArray[i]; NSArray *keyArray = [str componentsSeparatedByString:@"="]; NSString *key = keyArray[0]; NSString *value = keyArray[1]; [paramsDic setObject:value forKey:key]; NSLog(@"key:%@ ==== value:%@", key, value); } } return NO;} |
iOS跳转到另一个程序的更多相关文章
- 如果你恨一个程序员 忽悠他去做iOS开发(戏谑篇)
.state { text-align: right; height: 16px; line-height: 16px; color: #999; padding-top: 5px; overflow ...
- 如果你恨一个程序员,忽悠他去做iOS开发
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...
- iOS调用另一个程序
在 iOS 里,程序之间都是相互隔离,目前并没有一个有效的方式来做程序间通信,幸好 iOS 程序可以很方便的注册自己的 URL Scheme,这样就可以通过打开特定 URL 的方式来传递参数给另外一个 ...
- 微信小程序如何跳转到另一个小程序
微信小程序如何跳转到另一个小程序,要注意:在app.json文件里也要配置 navigateToMiniProgramAppIdList,如下图: "navigateToMiniProgra ...
- 如果恨一个程序员,忽悠他去做iOS开发
如果你恨一个程序员,忽悠他去做iOS开发.不管他背景是cobel还是 java,送他一本iOS开发的书.这种书最好是国人写的,容易以偏概全一点,相比洋鬼子的书,更容易学到皮毛.这叫舍不得孩子套不着狼, ...
- 连载《一个程序猿的生命周期》-《发展篇》 - 3.农民与软件工程师,农业与IT业
相关文章:随笔<一个程序猿的生命周期>- 逆潮流而动的“叛逆者” 15年前,依稀记得走出大山,进城求学的场景.尽管一路有父亲的陪伴,但是内心仍然畏惧.当父亲转身离去.准备回到 ...
- 从tabBarController的一个item上的控制器跳转到另一个item上的控制器
先从习惯性的tabBarController开始,很多应用的外框都是用这个开始的,而从tabBarController的一个item上的控制器跳转到另一个上的,往往都是直接通过点击tabBar上的不同 ...
- 如何绑定android点击事件--跳转到另一个页面并实现关闭功能?
一.点击按钮跳转到另一个页面. eg:实现从一个页面点击跳转到另一个页面 1.首先在一个布局文件(.XML)中绘画了一个跳转按钮(id为btn1): <Button androi ...
- 不变(Invariant), 协变(Covarinat), 逆变(Contravariant) : 一个程序猿进化的故事
阿袁工作的第1天: 不变(Invariant), 协变(Covarinat), 逆变(Contravariant)的初次约 阿袁,早!开始工作吧. 阿袁在笔记上写下今天工作清单: 实现一个scala类 ...
随机推荐
- win7开防火墙,允许ping通
- jQuery学习笔记——弹出对话框
引用jQuery库文件的<script>标签,必须放在引用自定义脚本文件的<script>标签之前.否则,在编写的代码中将不能引用到jQuery框架 <script ty ...
- Sky Box
http://www.keithlantz.net/2011/10/rendering-a-skybox-using-a-cube-map-with-opengl-and-glsl/ http://o ...
- SQL DatePart函数使用
DATEPART 返回代表指定日期的指定日期部分的整数. 语法 DATEPART ( datepart ,date ) 参数 datepart 是指定应返回的日期部分的参数.下表列出了 Microso ...
- [FMX] Android APP 启动黑屏优化补丁
使用说明 *************************************************** Android APP 启动黑屏优化补丁 作者: Swish, YangYxd 201 ...
- centos 7.0 编译 安装mysql 5.6.22 过程 已完成~ 成功~ 撒花~
mysql 下载目录/usr/local/srcmysql 解压目录 /usr/local/bin/mysql GitHub https://github.com/mysql/mysql-server ...
- Java并发编程核心方法与框架-Fork-Join分治编程(一)
在JDK1.7版本中提供了Fork-Join并行执行任务框架,它的主要作用是把大任务分割成若干个小任务,再对每个小任务得到的结果进行汇总,这种开发方法也叫做分治编程,可以极大地利用CPU资源,提高任务 ...
- Cucumber
http://www.ibm.com/developerworks/library/a-automating-ria/ Cucumber is a testing framework that hel ...
- 使用微信JS-SDK调用微信浏览器的接口
先附上微信公众平台的相关链接: 微信公众平台:https://mp.weixin.qq.com/ 微信公众平台开发文档:https://mp.weixin.qq.com/wiki 微信公众平台JS-S ...
- gradle 默认属性
Properties(未翻译) Property Description allprojects 包含该项目及其子项目的属性 ant The AntBuilder for this project. ...