【问题标题】:Opening a pdf file from my iOS App with a specific external application使用特定的外部应用程序从我的 iOS 应用程序打开 pdf 文件
【发布时间】:2014-01-15 12:29:09
【问题描述】:

我正在开发一个 iPad 应用程序,它能够从 Web 下载不同类型的文件。我想为用户提供将下载的文件(我的应用程序无法处理的文件)打开到设备中安装的其他应用程序的选项。

我知道这可以通过使用UIDocumentInteractionController 来完成,但我想跳过此方法中的显示选项。

例如:从网上下载一个pdf文件后,点击“打开”按钮,它应该会自动打开到设备中的adobe阅读器应用程序中。

CustomURL 是启动特定应用程序的有用方法,但可能难以获取某些应用程序的 URL 方案。

请分享你的想法。

提前致谢。

【问题讨论】:

  • 您需要 URL 才能使其工作。已安装应用中注册的 URL 是文档交互控制器背后的基础。
  • 有什么方法可以从 UIDocumentInteractionController 获取 URL 或相关细节吗?
  • 不太可能。您也许可以从 UI 中获取应用名称,但不能从底层 URL 获取。

标签: ios iphone objective-c pdf


【解决方案1】:

你需要做一个方法并从网络选项或本地(你想要这个吗?)选项调用。

直接来自网络:

UIWebView *theWebView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];

NSURL *targetURL = [NSURL URLWithString:@"http://yoursiteweb/directory/file.pdf"];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[theWebView loadRequest:request];

[self.view addSubview:theWebView];

在我下载文件后从你的捆绑包中:

UIWebView *theWebView = [[UIWebView alloc] initWithFrame:CGRectMake(10, 10, 200, 200)];

NSString *path = [[NSBundle mainBundle] pathForResource:@"file" ofType:@"pdf"];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[theWebView loadRequest:request];

[self.view addSubview:theWebView];

【讨论】:

    【解决方案2】:

    例如:从网上下载 pdf 文件后,点击 按钮“打开”,它应该会自动打开到 adobe reader 设备中的应用程序。

    您想打开另一个应用程序。如果你不知道它的 URL 模式,你怎么能打开它?通过 URL 模式是我们可以用来在一个应用程序中启动另一个应用程序的唯一方法。 Apple 没有提供获取可以打开文件的应用程序列表的方法。因此,您需要知道要打开的每个应用程序的确切 URL 架构。确实有点郁闷。

    【讨论】:

    • UIDocumentInteractionController 是列出所有可以处理特定类型文件的应用程序的可行选项。可能它使用 URL Schema 来启动应用程序。是否有任何技巧可以从 UIDocumentInteractionController 获取 URL 架构或此类详细信息?有什么猜测吗?
    • @itZme 对不起,我的猜测是不可能的。
    猜你喜欢
    • 2018-11-16
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多