原则上iOS的沙箱原理,是阻止一个app去访问其他app的资源乃至是系统底层的资源的但是我们可以通过一种变相的方式:通过对应的URL模式和其他程序进行通讯.

iOS应用之间的调用步骤:

一, 调用自己开发的应用

1)在plist文件中,注册对外接口

在xcode group&files 里面,展开 resources选择info.plist

鼠标右击information property list ,然后从列表中选择URL types

右击 add row 添加一个对象(item)右击item add row

从列表中选择 URL  Schemes 再右击添加一个对象(item1)

将item1得值设置为:myapp

这个myapp就是对外接口,其它应用可以通过它,调用该应用

plist如下图所示:

2).处理URL请求

应用程序委托在 application:handleOpenURL:方法中处理传递给应用程序的URL请求。如果您已经为自己      的应用程序注册了定制的URL模式,则务必在委托中实现这个方法。

下面代码实现了这个委托方法;

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

{

if([[url scheme] isEqualToString:@"myapp"]){

[application setApplicationIconBadgeNumber:10];

return YES;

}

return NO;

}

3).测试外部调用

1.回到Home屏幕,启动Safari(在iPhone仿真器上,在菜单上选择Hardware->Home命令就可以回到Home屏幕)。

2.在Safari的地址栏中,键入使用定制模式的URL: myapp:

3.确认您的应用程序是否启动,以及应用程序委托是否收到application:handleOpenURL:消息。

4)调用方法

在你需要调用上面注册过对外接口的应用中,添加下面代码即可

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

[[UIApplication sharedApplication] openURL: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内容。

iOS 如何在一个应用程序中调用另一个应用程序相关推荐

  1. SQL Server 2005 - 如何在预存程序中调用另外一个预存程序

    要在一个预存程序中调用另外一个预存程序,可以使用下列两种方式之一进行调用:  <?xml:namespace prefix = o /> EXECUTE <欲执行之预存程序的名称&g ...

  2. python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题

    python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题 1.在一个py文件中调用另一个py文件中的变量 新建一个py文件,记为t1.py # t1.py m = 2 n = 1 a ...

  3. 在python程序中调用另一个py文件

    在同一个文件夹下 调用函数: A.py文件: def add(x,y): print('和为:%d'%(x+y)) B.py文件: import A A.add(1,2) 或 from A impor ...

  4. python 在一个py文件中调用另一个文件夹下py文件模块

    假设现在的文件夹结构如下: -- src     |-- dir1     |    -- file1.py     |-- dir2     |    -- file2.py 若要在src文件夹下执 ...

  5. C#如何在一个按钮事件中调用另一个按钮的事件代码

    private void button1_click(object sender, EventArgs e) { Button2_Click(this, e); } private void Butt ...

  6. cmd执行bat结果不回显_cmd - 如何在bat文件中调用另一个bat文件

    情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调用b.bat,如下. a.bat @echo off echo I am a.ba ...

  7. cmd 如何在bat文件中调用另一个bat文件

    微信搜索:"二十同学" 公众号,欢迎关注一条不一样的成长之路 情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调 ...

  8. iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话,iTunes,iBooks )...

    在网上找到了下在记录下来以后方便用 在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用: 查看更多iPhone应用程序的调用和第三方应用程序的 ...

  9. [翻译]Kean' Blog 在一个.NET应用程序中调用AutoCAD

    程序员通常要么整合功能到AutoCAD(利用其Plug-in结构,以增加命令,用户界面,对象等),或者调用它自动完成任务.显然,这两者之间的界限已经比较模糊,但是今天我们重点介绍第二类. 用于帮助理解 ...

最新文章

  1. mysql使用sha256密码,MySQL5.6启用sha256_password插件
  2. java算法----排序----(6)希尔排序(最小增量排序)
  3. Linux预备知识(三):系统调用-用户态/内核态
  4. eclipse的remote search
  5. 使用C语言来扩展PHP,写PHP扩展dll
  6. Java Cardioid 心脏形曲线 (整理)
  7. Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
  8. [转]Windows的批处理脚本
  9. getOutputStream() has already been called for this response异常的原因和解决方法
  10. aspx mysql类_aspx中的mysql操作类sqldatasource使用示例分享
  11. python中基于tcp协议的通信(数据传输)
  12. nssl1317-灵魂分流药剂【分组背包,二维费用背包】
  13. Leetcode--172. 阶乘后的零
  14. redis持久化之rdb篇
  15. DOS打印目录树到文件
  16. java 正则表达式学习
  17. Beta冲刺——day6
  18. NODE_ENV不是内部或外部命令,也不是可运行的程序
  19. 房子怎么拆除_新规,可能拆除农村这4类房子,每户家庭可能获得40万
  20. mysql源码解读——事务管理

热门文章

  1. 自动化测试和手工测试结果汇总小实践
  2. jmeter 线程执行顺序_软件接口测试工具Jmeter使用方法详解(一)
  3. java.io.serializable_java.io.NotSerializableException即使我实现“Serializable”
  4. android volley post 参数,带有标题和正文的Android Volley POST请求
  5. php 开发商城 注意,开发PHP商城要注意的一些常见安全问题
  6. excel表中怎么插入visio_如何插入或 Visio 中粘贴的 Excel 工作表-阿里云开发者社区...
  7. python集合的元素可以是_Python - 集合与元素之集合定义和基本操作方法
  8. 从零开始刷Leetcode——数组(581.605.628)
  9. yolo3做行人检测+deep-sort做匹配,端对端做多目标跟踪
  10. colordialog通过哪属性取其颜色_IT兄弟连 HTML5教程 CSS3揭秘 CSS常见的样式属性和值1...