2015-11-02 12 views
6

Lavoro su webservice con json e ottengo testo in formato html. Voglio che il mio testo abbia collegamenti ipertestuali e altre proprietà in cui trovo i tag html (ecc. Grassetto).Come posso visualizzare il testo con il formato html nei moduli xamarin

Ho provato a legare la mia stringa html nel sorgente WebView ma WebView è sempre vuoto. Io uso questo codice

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

stringa MyItem.Article è come questo

json sample

voglio qualcosa di simile etichetta interna dove si trova all'interno di ListView os qualcosa di simile.

text with hyperlinks

Come posso fare questo?

+0

Dai un'occhiata a [questo articolo] (http://javatechig.com/xamarin/xamarin-android-webview-tutorial), aiuta? –

+0

io uso i moduli xamarin (ios e android) questo è solo per android –

risposta

12

Questo dovrebbe funzionare per voi

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

Perché Xamarin.Forms.HtmlWebViewSource.HTML aspetta un HTML puro. Usando questo è possibile creare un controllo utente Xamarin.Forms con l'aiuto di questo articolo http://blog.falafel.com/creating-reusable-xaml-user-controls-xamarin-forms/ Cheers ..!

+0

Grazie, questo lavoro per me! –

-1

FYI, Ho appena aggiunto la possibilità al mio Forms9Patch library di creare etichette e pulsanti in cui è possibile formattare il testo tramite HTML. Per esempio:

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

... darebbe un'etichetta in cui il testo è stato formattato in corsivo grassetto nel mezzo della stringa.

Inoltre, consente di utilizzare caratteri personalizzati che sono risorse incorporate nel progetto PCL senza alcuna attività specifica della piattaforma. Inoltre, puoi utilizzare questi caratteri tramite il tag HTLM o l'attributo HTML font-family.

Ecco alcune schermate del demo app:

HtmlLabelDroid1 HtmlLabelApple3

+11

Sembra che tu stia promuovendo un prodotto commerciale qui. –

+1

perché no se è una soluzione –

0

In XAML è possibile fare qualcosa di simile:

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

Potrebbe anche essere necessario per fornire altezza e la larghezza il WebView se non si trova all'interno di un Grid.

Problemi correlati