2015-11-02 118 views
6

我使用json在webservice上工作,並且我使用html格式獲取文本。我想我的文本有超鏈接和其他一些屬性,我從HTML標籤(等粗體)找到。如何使用xamarin格式的html格式顯示文本

我嘗試在WebView源代碼中綁定我的html字符串,但WebView每次都是空白的。我用這個代碼

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

MyItem.Article字符串是這樣

json sample

我想是這樣的標籤裏面哪裏是ListView控件操作系統類似的東西里面。

text with hyperlinks

我怎樣才能做到這一點?

+0

看看[這篇文章](http://javatechig.com/xamarin/xamarin-android-webview-tutorial),它有幫助嗎? –

+0

我使用xamarin形式(ios和android)這僅限於android –

回答

12

這應該爲你工作

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/乾杯..!

+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一些屏幕截圖:

HtmlLabelDroid1 HtmlLabelApple3

+11

看來你在這裏推銷商品。 –

+1

爲什麼不是如果它是一個解決方案 –

0

在XAML中,你可以做這樣的事情:

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

您可能還需要提供高度和寬度WebView如果它不在Grid內。