IOS在一个程序中启动另一个程序
尽管iPhone不允许同时运行两个应用程序,我们可以从自己的应用程序中启动另一个应用程序,并且可以在应用程序之间共享数据。我们可以使用UIApplication类的openURL:方法从一个应用程序来启动另一个应用程序。例如,要在Safari应用程序中打开Google主页,我们可以编写如下代码:
NSURL *url = [NSURL URLWithString:@
- "http://google.com"];
[[UIApplication sharedApplication]o
- penURL:url];
[这里的http://部分叫做URL方案(URL scheme),它表示想要载入的应用程序。
还有几种用于本地iPhone应用程序的URL方案,并且可以使用类似的方式来启动它们。
例如,要启动Mail应用程序(如图3-15所示),我们可以使用:
NSURL *url = [NSURL URLWithString:@
- "mailto:steve@apple.com
subject= t
- est"];
[[UIApplication sharedApplication] o
- penURL:url];
要启动SMS应用程序,我们可以编写如下代码:
NSURL *url = [NSURL URLWithString: -"sms:555-1234"]; [[UIApplication sharedApplication] -penURL:url]; 要拨打一个电话号码,我们可以使用如下代码:
NSURL *url=[NSURL URLWithString:@"tel:/
- /555-1234"];
[[UIApplication sharedApplication]o
- penURL:url];
要启动Maps应用程序来查找一个披萨店(如图3-16所示),我们使用如下代码:
NSURL *url = [NSURL URLWithString:@
- "http://maps.google.com/maps?
q=p
- izza"];
[[UIApplication sharedApplication]o
- penURL:url];
我们也可以使用URL方案来启动自己的应用程序:
用一个定制的URL方案来启动应用程序:
1)创建一个新的基于视图的应用程序,将其保存为URLSchemeExample。
2)在Xcode Groups & Files面板中,展开Resource部分,并且选择<app>-Info.plist文件。
3)鼠标右键点击Information Property List键,并点击添加箭头从列表中选择“URL types”(如图3-17所示)。
4)展开Item 1,用鼠标右键点击URL identifier,并且再次选择添加箭头从列表中选择URL Schemes(如图3-18所示)。
|
| 图3-16 启动Maps应用程序并查找披萨店 |
|
| (点击查看大图)图3-17 添加一个URL类型 |
|
| 图3-18 添加一个URL方案 |
|
| 图3-19 设置URL方案的名称 |
5)选择Item 1,并且将其值设置为myapplication(如图3-19所示)。
6)打开URLSchemeExampleView Controller.m,取消对viewDidLoad方法的注释,并且编写如下代码:
[self.view setBackgroundColor:[
- UIColor redColor]];
7)构建并运行应用程序。应该看到一个没有内容的红色屏幕。应用程序此时不会做任何事情,但是通过运行它(安装在iPhone或者模拟器上的应用程序),我们只是注册在步骤5中创建的URL方案(myapplication)。
8)我们可以使用如下代码,从另一个不同的应用程序启动该应用程序:
NSURL *url = [NSURL URLWithString:@"myapplication:"];
[[UIApplication sharedApplication] openURL:url];
转:http://blog.csdn.net/zzzili/article/details/8449893
IOS在一个程序中启动另一个程序的更多相关文章
- Android 在一个程序中启动另一个程序
Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用.一般我们知道了另一个应用的包名和MainActivity的名字 ...
- Android 在一个程序中启动另一个程序(包名,或者类名)
http://hi.baidu.com/xiaofanqing/item/6fd724f7c5bb6dce531c26b7 Android 开发有时需要在一个应用中启动另一个应用,比如Launcher ...
- 在android应用程序中启动其他apk程序
Android 开发有时需要在一个应用中启动另一个应用,比如Launcher加载所有的已安装的程序的列表,当点击图标时可以启动另一个应用. 一般我们知道了另一个应用的包名和MainActivity的名 ...
- vc++ 在程序中运行另一个程序的方法
在vc++ 程序中运行另一个程序的方法有三个: WinExec(),ShellExcute()和CreateProcess() 三个SDK函数: WinExec,ShellExecute ,Creat ...
- WP8的新功能-通过一个程序来启动另一个程序
Wp8对原来的WP7做了大量的优化...其中一个就包括Protocol Association,也就是通过uri来打开另外一个程序,这也就是说,我们可以做一个程序来启动另外一个程序了,如微信,QQ之类 ...
- android在一个应用程序员启动另一个程序
一般我们知道了另一个应用的包名和MainActivity的名字之后便可以直接通过如下代码来启动: Intent intent = new Intent(Intent.ACTION_MAIN); int ...
- android 在一个应用中启动另一个应用
在程序开发过程当中,常遇到需要启动另一个应用程序的情况,比如在点击软件的一个按钮可以打开地图软件. 如果既有包名又有主类的名字,那就好 办了, 直接像下面就行: [html] Intent inte ...
- android在程序中打开另一个程序
在开发android应用的时候,在一些情况下要有前置条件,比如这边所说的要启动时要确保别的应用程序服务已经打开 或者在操作中启动别的应用等. 先来一段google上的代码: 1. 已知包名和类名的情 ...
- 在一个Activity中启动另一个Activity
一.新建一个空的工程 二.添加一个Activity并命名为BAty 三.在activity_main.xml中添加一个按钮,设置id号为btnStartB <Button android:lay ...
随机推荐
- Maven3 生命周期与插件(笔记五)
第一节:Maven 生命周期 Maven 生命周期简介:Maven 通过插件的方式完成一系列过程来实现功能. Maven 拥有三套独立的生命周期: Clean 清理项目 Default 构建项目 Si ...
- 文件下载功能django+js
1. 功能叙述 前端web页面通过访问url+id的形式访问url lottery/draw/(?P<pk>(\d+))/download/ 后端代码通过orm查询pk相关数据 过滤出自己 ...
- JS中给函数参数添加默认值
最近在Codewars上面看到一道很好的题目,要求用JS写一个函数defaultArguments,用来给指定的函数的某些参数添加默认值.举例来说就是: // foo函数有一个参数,名为x var f ...
- Mget is available.
Table of Contents 1. Introduction 2. Use tmget in gentoo 3. About MTU 1 Introduction MulityGet to sp ...
- Effective STL 学习笔记 Item 26: Prefer Iterator to reverse_iterator and const_rever_itertor
Effective STL 学习笔记 Item 26: Prefer Iterator to reverse_iterator and const_rever_itertor */--> div ...
- Ngram折扣平滑算法
本文档翻译自srilm手册ngram-discount.7.html NAME ngram-discount – 这里主要说明srilm中实现的平滑算法 NOTATION a_z ...
- LoadRunner中文乱码问题解决方法
LoadRunner中文乱码问题解决方法 前段时间在录制,增强,整合LoadRunner脚本,期间两次遇到了中文乱码问题.在此记录一下中文乱码问题的解决办法. 一.录制回放中文乱码 我录制登陆的脚本, ...
- thinkphp调整框架核心目录think的位置
thinkphp的核心目录即框架文件可以放在项目之外的目录,这点手册上有提到,放在项目之外的地方可以方便其他项目共用一个框架文件. 在入口文件的index.php中,在导入框架目录这一行,可以直接修改 ...
- MVP模型
MVP模型一般要创建三个文件夹:View.Interactor(Model).Presenter 每个部分都有其接口和实现类,就是为了方便回调 这里做一个登陆界面为例子: 接口: Interactor ...
- react篇章-React State(状态)-将生命周期方法添加到类中
将生命周期方法添加到类中 在具有许多组件的应用程序中,在销毁时释放组件所占用的资源非常重要. 每当 Clock 组件第一次加载到 DOM 中的时候,我们都想生成定时器,这在 React 中被称为挂载. ...