1

我正在开发一个下载或查看 PDF 的 iPhone 应用程序。

在此应用程序中,我想显示可以查看 PDF 的可能外部应用程序列表(iBooks、Adobe Reader 等)。单击应用程序中的按钮时,如何确定这些应用程序并显示这样的列表?

4

1 回答 1

1

您可以通过两种不同的情况来实现这一点,因为这取决于您的要求。在这里,我已经包括了这两个案例,这将与魅力一起工作:

案例1:下载PDF,在本地写入并设置路径。

NSData *pdfData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:@"PDFurlString"]];

//Store the Data locally as PDF File

NSString *resourceDocPath = [[NSString alloc] initWithString:[[[[NSBundle mainBundle]  resourcePath] stringByDeletingLastPathComponent] stringByAppendingPathComponent:@"Documents"]];

NSString *filePath = [resourceDocPath stringByAppendingPathComponent:@"myPDF.pdf"];

[pdfData writeToFile:filePath atomically:YES];


//Now create Request for the file that was saved in your documents folder

NSURL *url = [NSURL fileURLWithPath:filePath];

NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];

[webView setUserInteractionEnabled:YES];

[webView setDelegate:self];

[webView loadRequest:requestObj];

案例 2:使用 NSData 直接在 WebView 中查看 PDF。

[webview loadData:fileData MIMEType:@"application/pdf" textEncodingName:@"utf-8" baseURL:nil];

现在,最后,如果您想在其他应用程序中打开 PDF,

第 1 步: 使用第一种情况,只需获取 url。

第 2 步: 您可以在此处找到这些url 方案的最大数据库。现在,如何使用?我们只需要 UIApplication。首先,我们需要检查 iOS 是否可以打开特定的 url。

[[UIApplication sharedApplication] canOpenURL:[NSURL urlWithString:@"fb://profile"]];

第 3 步:如果此方法返回 yes,则用户已安装 facebook 应用程序。要打开以下应用程序,您需要调用:

[[UIApplication sharedApplication] openURL:[NSURL urlWithString:@"fb://profile"]];

这将在 facebook 应用程序上打开您的 facebook 个人资料。

唉,不可能在 iOS 上禁用任何其他应用程序,因为每个第三方软件都被沙盒化了。

希望这对您有所帮助。

于 2012-10-17T08:55:54.910 回答