通过 URL Scheme 或其他方式打开 iOS 11 Files 应用程序

Posted

技术标签:

【中文标题】通过 URL Scheme 或其他方式打开 iOS 11 Files 应用程序【英文标题】:Open iOS 11 Files app via URL Scheme or some other way 【发布时间】:2018-03-12 00:13:22 【问题描述】:

我的应用现在在 ios 11 文件应用的“我的 iPhone”部分共享 Documents 目录。

(感谢这篇文章:Working with the Files App in iOS 11)

问题是如何通过 URL Scheme 打开此目录或至少 File 应用程序根页面。 UIDocumentPickerViewControllerUIDocumentBrowserViewController 在这种情况下无济于事。

【问题讨论】:

我也在寻找一种方法来做到这一点。还没找到东西。 Apple 开发者论坛中有一个关于此的主题,但还没有任何答案:forums.developer.apple.com/message/257860#257860 【参考方案1】:
    guard let documentDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first,
          let components = NSURLComponents(url: documentDirectory, resolvingAgainstBaseURL: true) else 
        return
    
    components.scheme = "shareddocuments"
    
    if let sharedDocuments = components.url 
        UIApplication.shared.open(
            sharedDocuments,
            options: [:],
            completionHandler: nil
        )
    

【讨论】:

欢迎来到***,描述这部分代码是如何工作的,会让你的答案更有用 使用这个 sn-p 您可以找到文档目录并将 URL 方案从 file:// 替换为 shareddocuments://,这是打开“文件”应用程序所需要的。 这适用于 iOS 15【参考方案2】:

可以使用 URL 方案 shareddocuments:// 打开“文件”应用。

我不知道是否有办法打开特定目录。

【讨论】:

【参考方案3】:
    func openSharedFilesApp() 
        let documentsUrl =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
        let sharedurl = documentsUrl.absoluteString.replacingOccurrences(of: "file://", with: "shareddocuments://")
        print(sharedurl)
        let furl:URL = URL(string: sharedurl)!
        UIApplication.shared.open(furl, options: [:], completionHandler: nil)
    

这段代码可以工作。

【讨论】:

以上是关于通过 URL Scheme 或其他方式打开 iOS 11 Files 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

IOS之URL Scheme的使用

Android 跨应用间调用: URL Scheme

Android页面跳转协议_URL Scheme详解

android,ios配置scheme,react-native获取url

Xamarin.Forms 中iOS通过URL Scheme判断应用是否安装

iOS 9 无法使用 URL SCHEME 打开 Instagram 应用