iOS 如何在一个应用程序中调用另一个应用程序
原则上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 如何在一个应用程序中调用另一个应用程序相关推荐
- SQL Server 2005 - 如何在预存程序中调用另外一个预存程序
要在一个预存程序中调用另外一个预存程序,可以使用下列两种方式之一进行调用: <?xml:namespace prefix = o /> EXECUTE <欲执行之预存程序的名称&g ...
- python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题
python 在一个py文件中调用另一个py文件中的变量以及一个有趣的问题 1.在一个py文件中调用另一个py文件中的变量 新建一个py文件,记为t1.py # t1.py m = 2 n = 1 a ...
- 在python程序中调用另一个py文件
在同一个文件夹下 调用函数: A.py文件: def add(x,y): print('和为:%d'%(x+y)) B.py文件: import A A.add(1,2) 或 from A impor ...
- python 在一个py文件中调用另一个文件夹下py文件模块
假设现在的文件夹结构如下: -- src |-- dir1 | -- file1.py |-- dir2 | -- file2.py 若要在src文件夹下执 ...
- C#如何在一个按钮事件中调用另一个按钮的事件代码
private void button1_click(object sender, EventArgs e) { Button2_Click(this, e); } private void Butt ...
- cmd执行bat结果不回显_cmd - 如何在bat文件中调用另一个bat文件
情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调用b.bat,如下. a.bat @echo off echo I am a.ba ...
- cmd 如何在bat文件中调用另一个bat文件
微信搜索:"二十同学" 公众号,欢迎关注一条不一样的成长之路 情景一:两个bat文件在同一个目录下 有时候我们需要在一个bat文件中调用另一个bat文件,比如我们想在a.bat中调 ...
- iOS程序中调用系统自带应用(短信,邮件,浏览器,地图,appstore,拨打电话,iTunes,iBooks )...
在网上找到了下在记录下来以后方便用 在程序中调用系统自带的应用,比如我进入程序的时候,希望直接调用safar来打开一个网页,下面是一个简单的使用: 查看更多iPhone应用程序的调用和第三方应用程序的 ...
- [翻译]Kean' Blog 在一个.NET应用程序中调用AutoCAD
程序员通常要么整合功能到AutoCAD(利用其Plug-in结构,以增加命令,用户界面,对象等),或者调用它自动完成任务.显然,这两者之间的界限已经比较模糊,但是今天我们重点介绍第二类. 用于帮助理解 ...
最新文章
- mysql使用sha256密码,MySQL5.6启用sha256_password插件
- java算法----排序----(6)希尔排序(最小增量排序)
- Linux预备知识(三):系统调用-用户态/内核态
- eclipse的remote search
- 使用C语言来扩展PHP,写PHP扩展dll
- Java Cardioid 心脏形曲线 (整理)
- Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
- [转]Windows的批处理脚本
- getOutputStream() has already been called for this response异常的原因和解决方法
- aspx mysql类_aspx中的mysql操作类sqldatasource使用示例分享
- python中基于tcp协议的通信(数据传输)
- nssl1317-灵魂分流药剂【分组背包,二维费用背包】
- Leetcode--172. 阶乘后的零
- redis持久化之rdb篇
- DOS打印目录树到文件
- java 正则表达式学习
- Beta冲刺——day6
- NODE_ENV不是内部或外部命令,也不是可运行的程序
- 房子怎么拆除_新规,可能拆除农村这4类房子,每户家庭可能获得40万
- mysql源码解读——事务管理
热门文章
- 自动化测试和手工测试结果汇总小实践
- jmeter 线程执行顺序_软件接口测试工具Jmeter使用方法详解(一)
- java.io.serializable_java.io.NotSerializableException即使我实现“Serializable”
- android volley post 参数,带有标题和正文的Android Volley POST请求
- php 开发商城 注意,开发PHP商城要注意的一些常见安全问题
- excel表中怎么插入visio_如何插入或 Visio 中粘贴的 Excel 工作表-阿里云开发者社区...
- python集合的元素可以是_Python - 集合与元素之集合定义和基本操作方法
- 从零开始刷Leetcode——数组(581.605.628)
- yolo3做行人检测+deep-sort做匹配,端对端做多目标跟踪
- colordialog通过哪属性取其颜色_IT兄弟连 HTML5教程 CSS3揭秘 CSS常见的样式属性和值1...