【问题标题】:Xamarin iOS: How to open a .pdf file using the default reader?Xamarin iOS:如何使用默认阅读器打开 .pdf 文件?
【发布时间】:2017-09-14 09:11:46
【问题描述】:

我正在使用 Xamarin iOS。我想让我们的应用程序在默认阅读器中打开一个 .pdf 文件。对于 Android,我设法通过以下两个过程来完成它:(1) 将文件从 Assets 文件夹复制到 Android 设备的 Downloads 文件夹,以及 (2) 启动一个活动来查看文件。

我找不到任何适用于 iOS 的类似资源。我们不想使用 Xamarin website, 中的控件,因为它涉及下载大量 JavaScript (?) 代码,使应用程序的大小变大,并且也不支持捏住屏幕进行缩放。我们想使用操作系统默认的pdf阅读器。

谢谢。

【问题讨论】:

    标签: c# ios pdf xamarin assets


    【解决方案1】:

    方法一:

    将构建操作设置为 BundleResource。您可以通过右键单击该文件并在打开的菜单中选择“构建操作”来设置文件的构建操作。
    创建 UIWebView 并将其添加到视图中:

    webView = new UIWebView (View.Bounds);
    View.AddSubview(webView);
    

    使用 NSUrl 和 NSUrlRequest 类加载文件:

    string fileName = "Loading a Web Page.pdf"; // remember case-sensitive
    string localDocUrl = Path.Combine (NSBundle.MainBundle.BundlePath, fileName);
    webView.LoadRequest(new NSUrlRequest(new NSUrl(localDocUrl, false)));
    webView.ScalesPageToFit = true;
    

    方法二:

    public void OpenFile (NSUrl fileUrl)
    {
        var docControl = UIDocumentInteractionController.FromUrl (fileUrl);
    
        var window = UIApplication.SharedApplication.KeyWindow;
        var subViews = window.Subviews;
        var lastView = subViews.Last ();
        var frame = lastView.Frame;
    
        docControl.PresentOpenInMenu (frame, lastView, true);
    }
    

    【讨论】:

    • 感谢您的帮助。它没有编译,并提供三种解决方案:(1a)完全限定 'Webclient 与 Data.Abstractions.WebClient,(1b)完全限定 'Webclient 与 Plugin.WebClient,(2)生成类型 'WebClient',和(3)添加参考 'System.dll..' 我应该使用哪一个?
    • 之前的代码只适用于共享项目,现在试试@MrProgrammer
    • @MrProgrammer 有没有办法以编程方式滚动网页视图?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多