如何在 ios 中打开本机文件应用程序?

Posted

技术标签:

【中文标题】如何在 ios 中打开本机文件应用程序?【英文标题】:How to open native files app in ios? 【发布时间】:2018-07-28 19:22:42 【问题描述】:

如何使用 url 方案或其他方式打开 ios 的本机文件应用程序? 我尝试搜索 url 方案但没有运气。

这个问题似乎没有答案,苹果论坛中有这个问题的帖子,但仍然没有答案。 https://forums.developer.apple.com/message/257860#257860 可以使用捆绑标识符来完成吗?

【问题讨论】:

为什么需要打开应用程序?你想达到什么目标? 让用户选择要分享的文件和文档! 我的回答解决了你的问题吗? 不,如果您查看现有应用程序,他们所做的只是使用文件应用程序让用户选择文档我也想做同样的事情,所以请您帮忙! 恕我直言,每个人都通过“UIDocumentPickerViewController”访问“文件”应用程序中的数据。我在答案中发布的代码允许您打开一个 ViewController,它向您显示与 Files 应用程序中相同的文件。你试过我的代码了吗? 【参考方案1】:

请尝试在您的用例中使用UIDocumentPickerViewController

let controller = UIDocumentPickerViewController(
    documentTypes: ["public.text"], // choose your desired documents the user is allowed to select
    in: .import // choose your desired UIDocumentPickerMode
)
controller.delegate = self
if #available(iOS 11.0, *) 
    controller.allowsMultipleSelection = false

// e.g. present UIDocumentPickerViewController via your current UIViewController
present(
    controller,
    animated: true,
    completion: nil
)

UIDocumentPickerDelegate 委托方法接收所选文档 URL 作为回调:

@available(iOS 11.0, *)
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) 
    // do something with the selected documents


func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentAt url: URL) 
    // do something with the selected document

【讨论】:

对于documentTypes,这是"System-Declared Uniform Type Identifiers"的列表,希望对其他人有所帮助。【参考方案2】:

可以选择使用shareddocuments:// URL 方案在特定位置打开“文件”应用,如this article 中所述。

如果您希望用户选择一个文档,您可以使用chriswillow's 方法和UIDocumentPickerViewController。 如果您想在您的应用中展示文档或文件夹,请创建一个Document Browser App。

【讨论】:

以上是关于如何在 ios 中打开本机文件应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

Firemonkey:如何从我的应用程序中打开本机 IOS 地图?

ios App:如何打开 facebook 链接并确保它是在 safari 而不是在本机应用程序中打开的?

如何从 iOS 传递信息以在启动时做出本机反应?

Cordova/iOS:如何关闭使用 InAppBrowser 打开的本机浏览器窗口?

如何在移动 android/iOs(本机应用程序)中关闭 webview

如何从网页打开本机应用程序