我们经常会遇到在一个应用里面呼出另一个应用的需求,比如在文档里面点击地址,调用safari来打开网页;比如在文件浏览器里面点击某种文件,自动激活一个应用来打开文件。

iOS里面对于这样的需求使用URL来实现,把其他的应用看成一种资源,本质上就是调用系统资源。

我们有两个应用App1和App2,在App2里面呼出App1,那么首先要配置App1,让系统认识App1的URL,这个就是配置info.plist文件的某些项,在Xcode里面就是配置一些选项,在Xcode4.6.2里面的样子如下图:

这样就设置好了相关项,Identifier需要保持每个应用不同,所以推荐采用逆向域名,URL Schemes就是呼起这个应用的URL的开头。

在App1的设置到这里就可以了,App2里面需要呼出App1时,代码也很简单:

    NSURL *url = [NSURL URLWithString:@"myapp://"];

    if ([[UIApplication sharedApplication] canOpenURL:url]) {
NSLog(@"can open %@", url);
[[UIApplication sharedApplication] openURL:url];
}

URL必须myapp://起头,后面可以跟上一些内容,如果仅仅要呼出应用,那么仅写这个头也可以了。

到这里,我们已经实现了在App2内呼出App1。在iOS4.2的系统之后,这样的一个调用会在App1里面调用-(BOOL)application:(UIApplication
*)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id) annotation这样一个方法。

iOS中如何呼出另一个应用的更多相关文章

  1. IOS中使用.xib文件封装一个自定义View

    1.新建一个继承UIView的自定义view,假设类名叫做 MyAppVew #import <UIKit/UIKit.h> @class MyApp; @interface MyAppV ...

  2. ios中LeveyPopListView 弹出view的用法

    下载地址https://github.com/levey/LeveyPopListView 是arc,  如果是非arc项目要设置一下 方法 选中工程->TARGETS->相应的targe ...

  3. H5页面IOS中键盘弹出导致点击错位的问题

    IOS在点击输入框弹出键盘  键盘回缩 后 定位没有相应改变  还有  textarea 也会弹出键盘 $("input").blur(function() { console.l ...

  4. MVC中 跳转出某一个Area的方法

    1. return RedirectToRoute(new { Controller= "Home",Action="Index",Area="&qu ...

  5. asterisk中使用dahdi通道呼出的注意事项

    asterisk中使用dahdi通道呼出的注意事项 在使用dahdi通道呼出的时候,可以在Dial中对呼出所使用的通道进行指定选择.以下面的例子来说明: 场景说明:数字板卡单E1,使用pri信令,1- ...

  6. iOS中事件传递过程

    iOS中,UIApplication管理着一个事件的队列,当系统获取用户的点击或滑动等事件后,就会将这些事件按顺序插入UIApplication管理的这个队里中,UIApplication再从这个队列 ...

  7. 【IOS】ios中NSUserDefault与android中的SharedPreference用法简单对比

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3405308.html 有Android开发经验的朋友对Shar ...

  8. iOS中如何创建一个滑出式导航面板(1)

    本文将介绍如何创建类似Facebook和Path iOS程序中的滑出式导航面板. 向右滑动 滑出式设计模式可以让开发者在程序中添加常用的导航功能,又不会浪费屏幕上宝贵的空间.用户可以在任意时间滑出导航 ...

  9. IOS 中openGL使用教程2(openGL ES 入门篇 | 绘制一个多边形)

    在上一篇我们学习了如何搭建IOS下openGL的开发环境,接下来我们来学习如何绘制一个多边形. 在2.0之前,es的渲染采用的是固定管线,何为固定管线,就是一套固定的模板流程,局部坐标变换 -> ...

随机推荐

  1. filestream streamreader

    filestream是一个读取文件的stream,其本身也是支持read和write的,负责的对文件的读与写,而streamreader则是建立在对流的基础上的读,同时还有streamwrite ht ...

  2. Table XXX is marked as crashed and should be repaired问题

    数据表出错了,查询数据获取不到了. 尝试一 重启mysql service mysqld restart 没用,重启并没有把表修复掉 尝试二 check table vicidial_list;rep ...

  3. Spring再学习

    一.主要版本变更 框架最早发布于2004年,其后发布了几个重大的版本更新:在Spring 2.0中提供对XML命名空间和AspectJ的支持:Spring 2.5中新增了注解驱动的配置:在Spring ...

  4. Win7 64 bit 激活工具

    下载地址:http://www.3987.com/xiazai/1/18/35487.html 一键运行,重启就激活了,简洁方便!

  5. linux之SQL语句简明教程---Alias

    接下来,我们讨论 alias (别名) 在 SQL 上的用处.最常用到的别名有两种: 栏位别名及表格别名. 简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读.在之前的例子中,每当我们有营业额 ...

  6. linux 启动 oracle数据库

    第一步:切换到oracle用户 su - oracle 第二步:启动oracle数据库监听 lsnrctl start 第三步:输入下方命令,出现:sql> sqlplus /nolog 第四步 ...

  7. SharePoint 2010 用Event Receiver将文件夹自动变成approved状态 (2)

    接上篇,先贴ItemUpdated的代码: base.ItemUpdated(properties); if (properties.ListItem.FileSystemObjectType != ...

  8. Cocos2d-x 3.1.1 Lua演示样例 ActionEaseTest(动作)

    Cocos2d-x Lua演示样例 ActionEaseTest(动作)   本篇博客介绍Cocos2d-x中的动作,Cocos2d-x为我们提供了丰富的动作接口,以下笔者就具体介绍一下:   本系列 ...

  9. Endian.BIG_ENDIAN和Endian.LITTLE_ENDIAN(http://smartblack.iteye.com/blog/1129097)

    Endian.BIG_ENDIAN和Endian.LITTLE_ENDIAN 在ByteArray和Socket中,能看到一个属性endain. endian : String 更改或读取数据的字节顺 ...

  10. EnyimMemcached扩展 遍历功能

    Memcached本身对外提供的命令不多,也就add.get.set.incr.decr.replace.delete.stats等几个,客户端对这些操作进行了封装,总体来说调用还是很简单的. 初看了 ...