我有一个名为MyApp
的应用,它主要是wkwebview
。它已经集成到“文件”应用程序中,因此我可以import/export
中的wkwebview
个文件将文件下载到本地计算机或将文件上传到服务器。
最后,我尝试在我的应用程序中构建一个UIbutton
,以使我的用户可以在我存储所有内容的文件夹中跳转到“文件”应用程序。与其在我的应用程序中构建一个完整的FileProviderUI
,不如希望按钮使用户进入“文件”应用程序,并导航到该文件夹。
当我给出UIDocumentInteractionController
作为目录的路径并进行共享打开以显示它时,什么都没有发生。没有错误,一点都没有。我只希望用户能够跳进“文件”应用程序内名为MyApp
的文件夹。
我认为这将非常简单。添加FileProvider
扩展名或FilePRoviderUI
扩展名似乎只是多余的操作,只是将用户跳到该文件夹中并让他与Files应用程序交互以执行他喜欢的任何事情-打开/删除/修改文档。
即使我告诉他们文件已保存在Files App中,我也要假设用户不够聪明才能知道,以便他们在脱机时可以直接进行交互!
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
// Just jump to the folder forcing Files app to open this
let viewer = UIDocumentInteractionController(documentsUrl)
viewer.delegate = self
viewer.presentPreview(animated: true)
什么都没有呈现给用户,什么也没有发生。点击按钮只是悄无声息。
答案 0 :(得分:0)
我想我明白了。有一种特定的URL格式会自动打开“文件”应用,它是shareddocuments://-这是一个简单的功能,似乎可以轻松实现这种安静。
func openSharedFilesApp() {
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let sharedurl = documentsUrl.absoluteString.replacingOccurrences(of: "file://", with: "shareddocuments://")
let furl:URL = URL(string: sharedurl)!
UIApplication.shared.open(furl, options: convertToUIApplicationOpenExternalURLOptionsKeyDictionary([:]), completionHandler: nil)
}
答案 1 :(得分:0)
谢谢,维杰。在Objective-C中。
- (void) openSharedFilesApp
{
NSArray<NSString *>* directories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); // yes = expand tilde
NSURL* url = [NSURL fileURLWithPath:directories.firstObject];
NSString* sharedDocumentPath = [url.absoluteString stringByReplacingOccurrencesOfString:@"file://" withString:@"shareddocuments://"];
NSURL* sharedDocumentURL = [NSURL URLWithString:sharedDocumentPath];
[UIApplication.sharedApplication openURL:sharedDocumentURL options:@{UIApplicationOpenURLOptionUniversalLinksOnly: @(NO)} completionHandler:^(BOOL success) {
}];
}