【问题标题】:Rendering HTML in Xamarin Forms and opening embedded PDF from the HTML link在 Xamarin 表单中呈现 HTML 并从 HTML 链接打开嵌入的 PDF
【发布时间】:2020-04-29 16:23:15
【问题描述】:

我已经编写了包含指向其他网站的链接的 HTML 文件。我用过

HtmlWebViewSource html = new HtmlWebViewSource();

渲染和显示 HTML 内容。

现在,我在该 HTML 中有 URL 链接,当我单击该链接时,它会打开默认浏览器并打开网站。我用过:

Device.OpenUri(new Uri(args.Url));

现在,问题是我想在该 HTML 中有一个链接,单击该链接后,它应该会打开嵌入的 PDF 文件。

有什么方法可以从我的代码设计中实现这一点,或者我是否必须重新编写不同的方法。如果有任何可用的最佳方法,您能否提出建议?

【问题讨论】:

  • 您似乎已经知道如何呈现 HTML 并拦截来自 web 视图的链接点击。那么您只是在问如何打开 PDF 吗?
  • 是的。如何在 HTML 中放置 PDF 文件的链接?我可以把链接放在那里,但如果我这样做,Device.Uri 会抛出一个错误。
  • 您的链接处理程序可以检查网址是否为 PDF 并改为调用 PDF 查看器。已有许多问题解决了在您的应用中显示 PDF 的不同方法

标签: c# xamarin xamarin.forms xamarin.android xamarin.ios


【解决方案1】:

在 iOS 中,您可以使用 WKWebViewQLPreviewController 或加载 pdf 文件。

在Android中,您可以通过以下方式打开pdf文件:

    Android.Net.Uri uri = Android.Net.Uri.FromFile(file);
    Intent intent = new Intent(Intent.ActionView);
    intent.SetDataAndType(uri, application);
    intent.SetFlags(ActivityFlags.ClearWhenTaskReset | ActivityFlags.NewTask);

    Forms.Context.StartActivity(intent);

您需要创建一个dependency-service,并在每个平台项目中实现打开pdf的方法。然后在 Xamarin.forms 项目中单击 openpdf link 时调用它。

您可以查看以下几个线程:

opening-a-pdf-with-xamarin-forms

how-to-open-pdf-or-txt-file-in-default-app-on-xamarin-forms

how-to-view-pdf-file-using-xamarin-forms

【讨论】:

    【解决方案2】:

    我建议您使用webview,以免过多地更改您的代码,并且效果很好,请先查看此post。否则,有一些第三方付费框架,如Telerik,具有很好的控制功能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-25
      • 1970-01-01
      • 2019-10-19
      • 2019-07-21
      • 2014-07-03
      • 2018-12-24
      • 2018-07-20
      • 2012-12-15
      相关资源
      最近更新 更多