c# - 在 Xamarin Forms 中渲染 HTML 并从 HTML 链接打开嵌入的 PDF

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

我已经编写了 HTML 文件,其中包含一些其他网站的链接。我用过

HtmlWebViewSource html = new HtmlWebViewSource();

渲染并显示 HTML 内容。

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

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

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

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

enter image description here

最佳答案

在 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并在各平台项目中实现open 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

关于c# - 在 Xamarin Forms 中渲染 HTML 并从 HTML 链接打开嵌入的 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61506629/

相关文章:

c# - 如何使用 C# 在 Xamarin 中实现下拉刷新

c# - 与 Web 角色进行内部 tcp 连接后,Azure 辅助角色变得无响应

c# - MongoDb C# 驱动程序投影返回名称和值对

c# - Serilog.Settings.Configuration 作为包引用时不起作用

c# - 来自设置的常量字符串

c# - Xamarin ScrollView 应该跳到底部

android - 部署我的 MVVMCross Xamarin.Android 应用程序似乎会清除应用程序的文档存储

xamarin - 在android中,使用serilog.sinks.RollingFile时,我无法创建文件夹或将日志详细信息保存在特定文件中

xamarin.forms - 在代码中设置导航栏标题和图标

xamarin.forms - 在 Xamarin 表单中调用 DisplayALert() 时出现异常