在我的应用程序中打开外部应用

时间:2012-02-15 12:13:55

标签: iphone objective-c

我可以在我的应用程序中调用其他已安装的应用程序吗?假设我已经安装了AngryBirds,我必须通过点击应用程序中的按钮来调用该应用程序。有可能吗?

4 个答案:

答案 0 :(得分:1)

如果相关应用程序具有已定义的协议,您可以执行此操作,例如,如果您想通过Skype调用某个号码,则可以执行类似

的操作
NSString *contactName = @"user123";
NSURL *skypeURL = [NSURL URLWithString:[NSString stringWithFormat:@"skype://%@?call",    contactName]];
if ([[UIApplication sharedApplication] canOpenURL:skypeURL]) {
    [[UIApplication sharedApplication] openURL:skypeURL];
} else {
    // Display to the user how to install skype.
}

对于具有可理解的协议定义的其他程序也会发生同样的情况。

只有4条记录,这是一个已知的URL方案列表 http://wiki.akosma.com/IPhone_URL_Schemes

然后,如果您希望自己的应用与URL兼容,那么您可以通过以下方式获得良好的开端: http://www.idev101.com/code/Objective-C/custom_url_schemes.html 而这篇文章真的很好而且很详细。

How do you set your Cocoa application as the default web browser?

它解释了如何让您的应用处理自定义URLScheme,结果证明是您的情况。

希望它有所帮助。

ķ

对于其他情况,我不知道是否可能。

答案 1 :(得分:0)

不,这是不可能的,除非相关的应用程序支持URL Scheme,然后您可以使用URL启动它。

答案 2 :(得分:0)

不可能,因为所有iphone应用程序都将使用自己的运行时环境在不同的单个进程中运行。系统库和资源也只有有限的IPC(进程间通信)。

答案 3 :(得分:0)

没有。无法在应用内打开另一个应用。但是,您可以使用

从应用中打开其他应用,反之亦然
  1. URL Scheema

  2. 使用CFBundleDocumentTypesUIDocumentInteractionController的Open_In功能。