2015-11-02 21 views
6

私はjsonでwebserviceを使用していますが、html形式のテキストを取得します。私は自分のテキストにハイパーリンクやhtmlタグ(太字など)から見つかったいくつかのプロパティが必要です。xamarinフォームでhtml形式のテキストを表示するにはどうすればいいですか

WebViewソースでHTML文字列をバインドしようとしましたが、WebViewは空白になります。私は、リストビュー、OS内のようなものである。この内部ラベルのような何かをしたい、このコード

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

MyItem.Article文字列は、この

json sample

のようなものである使用します。

text with hyperlinks

私はこれをどのように行うことができますか?

+0

[この記事](http://javatechig.com/xamarin/xamarin-android-webview-tutorial)をご覧ください。それは役に立ちますか? –

+0

私はxamarin形式(iosとアンドロイド)を使用しています。これはアンドロイドのためだけです –

答えて

12

Xamarin.Forms.HtmlWebViewSource.HTMLは、純粋なHTMLを期待するので、これはあなた

string htmlText = MyItem.Article.ToString().Replace(@"\", string.Empty); 
var browser = new WebView(); 
var html = new HtmlWebViewSource { 
    Html = htmlText 
}; 
browser.Source = html; 

のために働く必要があります。これを使用すると、この記事の助けを借りてXamarin.Formsユーザーコントロールを作成することができますhttp://blog.falafel.com/creating-reusable-xaml-user-controls-xamarin-forms/乾杯!

+0

ありがとう、この作品は私のために! –

-1

参考までに、Forms9Patch libraryに、HTMLでテキストの書式設定ができるラベルとボタンを作成する機能を追加しました。たとえば:

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

...あなたのテキストは、文字列の途中でイタリックボールドフォーマットされたラベルを与えるだろう。

また、プラットフォーム固有の作業をせずに、PCLプロジェクトに組み込みリソースであるカスタムフォントを使用することもできます。また、これらのフォントは、HTLM <font>タグまたはHTML font-family属性で使用できます。ここで

demo appからいくつかのスクリーンショットです:

XAMLで

HtmlLabelDroid1 HtmlLabelApple3

+11

ここに商品を宣伝しているようです。 –

+1

なぜ解決できないのですか –

0

あなたはこのような何かを行うことができます。

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

あなたもの高さと幅を提供する必要があるかもしれませんGridの内部にない場合はWebViewとなります。

関連する問題