7

我使用 UIDocumentInteractionController 在应用程序中预览不同类型的文件。这在过去运行良好,但在装有 iOS 13 的设备上运行应用程序时,不会显示文档。显示的是文件名和类型。

我寻找了类似的问题,发现这个 UIDocumentInteractionController 显示文件名和文件类型,而不是文件内容

我已经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;
    }
}

这可能是适用于 iOS 13 的 Xamarin.ios 中的 NSUrl 的问题吗?任何帮助将非常感激。

4

1 回答 1

6

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

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

uidic.PresentPreview(true);

较大的文件,例如 11MB 的 XLSX 文件,需要很长时间才能加载。

于 2019-10-07T12:41:50.693 回答