web-dev-qa-db-ja.com

XamarinフォームでHTML形式のテキストを表示する方法

私はjsonを使用してwebserviceで作業し、html形式のテキストを取得します。テキストにハイパーリンクとHTMLタグから見つけられるその他のプロパティ(太字など)を含めたい。

WebViewソースでHTML文字列をバインドしようとしましたが、WebViewは常に空白です。このコードを使用します

var browser = new WebView();
var htmlSource = new HTMLWebViewSource();
htmlSource.Html = MyItem.Article;
browser.Source = htmlSource;

MyItem.Article文字列は次のようになります

json sample

ListView osの中にあるようなLabelの中にこのようなものが欲しいです。

text with hyperlinks

これどうやってするの?

10
G.Mich

これはあなたのために働くはずです

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を想定しています。これを使用して、この記事の助けを借りてXamarin.Formsユーザーコントロールを作成できます http://blog.falafel.com/creating-reusable-xaml-user-controls-xamarin-forms/ Cheers。 。!

14
Isham Mohamed

XAMLでは、次のようなことができます。

<WebView>
   <WebView.Source>
      <HtmlWebViewSource Html="{Binding HtmlText}"/>
   </WebView.Source>
</WebView>

WebView内にない場合は、Gridの高さと幅も指定する必要があります。

5
Anup Sharma

ちなみに、私は Forms9Patchライブラリ に機能を追加しました。HTMLを介してテキストをフォーマットできるラベルとボタンを作成します。例えば:

new Forms9Patch.Label { HtmlText =  "plain <b><i>Bold+Italic</i></b> plain"}

...は、テキストが文字列の中央で太字の斜体にフォーマットされたラベルを提供します。

また、余談ですが、プラットフォーム固有の作業を行わなくても、PCLプロジェクトに埋め込まれたリソースであるカスタムフォントを使用できます。そして、これらのフォントをHTLM経由で使用できます<font>タグまたはHTML font-family属性。

デモアプリ のスクリーンショットをいくつか次に示します。

HtmlLabelDroid1HtmlLabelApple3

1
baskren