2015-11-02 39 views
6

Tôi làm việc trên webservice với json và tôi nhận được văn bản có định dạng html. Tôi muốn văn bản của tôi có siêu liên kết và một số thuộc tính khác mà tôi tìm thấy từ thẻ html (v.v.).Làm cách nào để hiển thị văn bản có định dạng html ở dạng xamarin

Tôi thử ràng buộc chuỗi html của mình trong nguồn WebView nhưng WebView luôn trống. Tôi sử dụng mã này

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

chuỗi MyItem.Article là như thế này

json sample

Tôi muốn một cái gì đó giống như Label bên này đâu là bên trong một cái gì đó ListView os như thế.

text with hyperlinks

Tôi làm cách nào để thực hiện việc này?

+0

Hãy xem [bài viết này] (http://javatechig.com/xamarin/xamarin-android-webview-tutorial), nó có giúp ích không? –

+0

tôi sử dụng các hình thức xamarin (ios và android) này chỉ dành cho android –

Trả lời

12

này nên làm việc cho bạn

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 mong đợi một HTML thuần túy. Sử dụng điều này bạn có thể tạo một điều khiển người dùng Xamarin.Forms với sự giúp đỡ của bài viết này http://blog.falafel.com/creating-reusable-xaml-user-controls-xamarin-forms/ Chúc mừng ..!

+0

Cảm ơn, công việc này dành cho tôi! –

-1

FYI, tôi vừa thêm khả năng của mình vào Forms9Patch library để tạo nhãn và nút mà bạn có thể định dạng văn bản qua HTML. Ví dụ:

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

... sẽ cung cấp cho bạn nhãn nơi văn bản được định dạng in nghiêng ở giữa chuỗi.

Ngoài ra, như một sang một bên, nó cho phép bạn sử dụng phông chữ tùy chỉnh được nhúng tài nguyên trong dự án PCL của bạn mà không có bất kỳ nền tảng công việc cụ thể. Và, bạn có thể sử dụng các phông chữ này thông qua thẻ HTLM <font> hoặc và thuộc tính HTML font-family.

Dưới đây là một số ảnh chụp màn hình từ demo app:

HtmlLabelDroid1 HtmlLabelApple3

+11

Có vẻ như bạn đang quảng cáo một sản phẩm thương mại ở đây. –

+1

tại sao không nếu nó là một giải pháp –

0

Trong XAML bạn có thể làm một cái gì đó như thế này:

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

Bạn cũng có thể cần cung cấp chiều cao và chiều rộng của các WebView nếu nó không phải là bên trong một Grid.

Các vấn đề liên quan