我正在尝试使用 QLPreviewController 查看 PDF 文件并将其发送,但在预览 PDF 文档后操作按钮出现问题。
当我按下操作按钮(在右上角)时,应用程序崩溃并且我得到:“未处理的托管异常:引发了 Objective-C 异常。名称:NSInternalInconsistencyException 原因:UIDocumentInteractionController:无效方案(null)。仅支持文件方案。( MonoTouch.Foundation.MonoTouchException)"
我做了一些研究,如果您从 Internet 下载文件或文件类型不是“file:// ..........”,则可能会出现此问题。我的 NSUrl 是这种格式,所以我不知道为什么会出现这个错误。
有人有什么想法吗?
谢谢
这是我调用控制器的代码:
QLPreviewController previewController= new QLPreviewController();
previewController.DataSource=new MyQLPreviewControllerDataSource();
this.PresentViewController(previewController,true, null);
这是我的数据源代码:
public class MyQLPreviewControllerDataSource : QLPreviewControllerDataSource { public override int PreviewItemCount (QLPreviewController controller) {
return 1;
}
public override QLPreviewItem GetPreviewItem (QLPreviewController controller, int index)
{
string fileName = @"example.pdf";
var documents = Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments);
var library = Path.Combine (documents,fileName);
NSUrl url = NSUrl.FromFilename (library);
return new QlItem ("Title", url);
}
}
这是我的项目代码:
public class QlItem : QLPreviewItem { string _title; Uri _uri;
public QlItem (string title, Uri uri)
{
this._title = title;
this._uri = uri;
}
public override string ItemTitle {
get { return _title; }
}
public override NSUrl ItemUrl {
get { return _uri; }
}
}