我使用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);

以及 Controller 的定义:
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是否可能是一个问题?任何帮助将非常感激。

最佳答案

我的问题通过修改代码来解决,如下所示:

var uidic = new UIDocumentInteractionController()
{
  Name = fileName,
  Url = NSUrl.FromFilename(filePath),
  Delegate = new DocInteractionC(viewController)
};

uidic.PresentPreview(true);

较大的文件(例如11MB XLSX文件)将需要很长的加载时间。

关于xamarin - 使用UIDocumentInteractionController预览文档在iOS 13中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58239548/

10-14 23:20
查看更多