我使用UIDocumentInteractionController预览应用程序中不同类型的文件。过去这种方法运行良好,但是在具有iOS 13的设备上运行应用程序时,不会显示该文档。显示的是文件名和类型。
我寻找了类似的问题并发现了这个 UIDocumentInteractionController showing file name and file type , not file contents
我已经尝试过NSUrl.CreateFileUrl(FilePath, null)
,因为该问题的评论暗示了这一点,但这不能解决问题。
这是我用来打开文件并显示预览的内容:
var uidic = UIDocumentInteractionController.FromUrl(new NSUrl(FilePath, true));
uidic.Delegate = new DocInteractionC(navcontroller);
uidic.PresentPreview(true);
以及控制器定义:
public class DocInteractionC : UIDocumentInteractionControllerDelegate
{
readonly UIViewController m_oParentViewController;
public DocInteractionC(UIViewController controller)
{
m_oParentViewController = controller;
}
public override UIViewController ViewControllerForPreview(UIDocumentInteractionController controller)
{
return m_oParentViewController;
}
public override UIView ViewForPreview(UIDocumentInteractionController controller)
{
return m_oParentViewController.View;
}
}
在Xamarin.ios中,iOS 13的NSUrl是否可能有此问题?任何帮助将不胜感激。
答案 0 :(得分:4)
我的问题通过如下修改代码来解决:
var uidic = new UIDocumentInteractionController()
{
Name = fileName,
Url = NSUrl.FromFilename(filePath),
Delegate = new DocInteractionC(viewController)
};
uidic.PresentPreview(true);
较大的文件(如11MB XLSX文件)将需要很长的加载时间。