如何在 xamarin 表单中显示 html 格式的文本
Posted
技术标签:
【中文标题】如何在 xamarin 表单中显示 html 格式的文本【英文标题】:How can I show text with html format in xamarin forms 【发布时间】:2016-02-02 19:36:39 【问题描述】:我使用 json 处理 web 服务,我得到了 html 格式的文本。我希望我的文本有超链接和一些其他属性,我可以从 html 标签(等粗体)中找到。
我尝试在 WebView 源中绑定我的 html 字符串,但 WebView 每次都是空白的。我用这个代码
var browser = new WebView();
var htmlSource = new HTMLWebViewSource();
htmlSource.Html = MyItem.Article;
browser.Source = htmlSource;
MyItem.Article 字符串是这样的
我想在 Label 里面有这样的东西,在 ListView os 里面是这样的东西。
我该怎么做?
【问题讨论】:
看看this article,有帮助吗? 我使用 xamarin 表单(ios 和 android),这仅适用于 android 【参考方案1】:这应该适合你
string htmlText = MyItem.Article.ToString().Replace(@"\", string.Empty);
var browser = new WebView ();
var html = new HtmlWebViewSource
Html = htmlText
;
browser.Source = html;
因为Xamarin.Forms.HtmlWebViewSource.HTML
期望纯 HTML。使用它,您可以在本文http://blog.falafel.com/creating-reusable-xaml-user-controls-xamarin-forms/ Cheers..的帮助下创建一个 Xamarin.Forms 用户控件。
【讨论】:
【参考方案2】:在 XAML 中,您可以执行以下操作:
<WebView>
<WebView.Source>
<HtmlWebViewSource Html="Binding HtmlText"/>
</WebView.Source>
</WebView>
如果WebView
不在Grid
内,您可能还需要提供高度和宽度。
【讨论】:
我相信这是我看到的第一个将 WebView 声明添加到 XAML 的示例 - 在阅读了 Microsoft Docs 上 Xamarin.Forms 的一些文档之后。当然有帮助【参考方案3】:仅供参考,我刚刚向我的Forms9Patch library 添加了创建标签和按钮的功能,您可以在其中通过 HTML 格式化文本。例如:
new Forms9Patch.Label HtmlText = "plain <b><i>Bold+Italic</i></b> plain"
... 会给你一个标签,其中文本在字符串中间被格式化为粗斜体。
另外,顺便说一句,它允许您在 PCL 项目中使用嵌入资源的自定义字体,而无需任何特定于平台的工作。而且,您可以通过 HTLM <font>
标签或 HTML font-family
属性使用这些字体。
以下是demo app的一些屏幕截图:
【讨论】:
如果它是一个解决方案,为什么不呢 Forms9Patch 不再是商业产品。它现在是 MIT License 开源,不需要许可证。话虽如此,我仍然同意尼克的观点。 @baskren 我在哪里可以找到 MIT 许可源?因为我能找到的都是商业的 github:github.com/baskren/Forms9Patch;比特桶:bitbucket.org/baskren/forms9patch2;请注意,文档正在进行中。 这看起来很有帮助。 Windows 和 OS X 上 VS 的初始演练文档提供了一个很好的介绍 baskren.github.io/Forms9Patch/guides 它当然可以用于在 RSS 聚合流中发布的 HTML 内容。如果 Xamarin 还没有注意到这个项目,因为与 Xamarin.Forms VS 支持捆绑在一起,这很惊讶。也许可以修补原始 Xamarin.Forms VS 项目模板,使其更容易上手【参考方案4】:<pre>
<WebView VerticalOptions="FillAndExpand">
<WebView.Source>
<HtmlWebViewSource Html="Binding HtmlText"/>
</WebView.Source>
</WebView>
</pre>
【讨论】:
虽然此代码可能会解决问题,including an explanation 关于如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。以上是关于如何在 xamarin 表单中显示 html 格式的文本的主要内容,如果未能解决你的问题,请参考以下文章