如何从我的应用程序打开我的设备上的其他应用程序

时间:2012-08-28 13:27:19

标签: iphone ios ipad

我想打开另一个应用程序(如GDrive,iBooks等)。使用我的应用程序中的UTI。

为此,我尝试使用this site中的以下代码,该代码用于将PDF文件从我的应用程序导出到另一个应用程序。

    NSString * filePath = [[NSBundle mainBundle] pathForResource:nil ofType:@"pdf"];    
documentController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:filePath]];
documentController.delegate = self;
[documentController retain];
documentController.UTI = @"com.adobe.pdf";
[documentController presentOpenInMenuFromRect:CGRectZero inView:Parent animated:YES];

上面的代码确实从我的应用程序中提供了我的设备上可用的应用程序列表(GDrive,iBooks等),但当我点击这些应用程序中的任何一个时,它会将一个PDF从我的应用程序导出到所选的应用程序,虽然我已经将FilePath用作" NIL"。

我想要做的是能够从我的应用程序打开我的设备上的任何可用的其他应用程序(GDrive,iBooks等),而无需将我的应用程序中的任何PDF文件发送到该应用程序。

3 个答案:

答案 0 :(得分:1)

自定义网址是要走的路。有关实现的示例代码,请参阅此link

答案 1 :(得分:1)

URL方案是要走的路,但当然不是每个应用都有它们。 可以找到完整列表here(截至本答复时,网站存在某种错误,无法打开)。

关于如何使用它们打开Facebook App的示例:

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

if ([[UIApplication sharedApplication] canOpenURL:url])
{
    [[UIApplication sharedApplication] openURL:url];
} // else -> i.e. open Safari to Facebook's page or show an error message

答案 2 :(得分:0)

每个APP都包含标识符,其形式为“com.companyName.appName”(例如:“com.adobe.appname”)。 在特定应用中打开它,

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“com.adobe.appname”]];