2014-12-01 59 views
1

所以我想奔幾個小時我們得到這個工作...如何從網頁使用Xamarin.Forms

我表現的,我一直想一個Xamarin窗體PCL項目中讀取HTML閱讀網頁的html。

這是我最近一次嘗試:

//我稱之爲網頁閱讀的方法

async Task<String> GetWebContent() 
    { 

     var httpClient = new HttpClient(); 
     return await httpClient.GetStringAsync ("http://www.google.se"); 
    } 

我再調用這個方法是這樣的:

string html = await GetWebContent(); 
DisplayAlert("alert", html, "ok"); 

我只是嘗試顯示網頁的html以查看它的工作原理,但它始終返回空白。有沒有人有任何想法如何使這項工作?

另外我已經添加了這兩個nugetpackages: Microsoft.Bcl.Async,它向PCL添加了異步/等待支持。 Microsoft.Net.Http,它爲PCL添加了HttpClient支持。

+0

方法簽名應該是任務。它是任務還是僅僅是網站的格式問題? – SKall 2014-12-01 23:07:32

+0

不,它只是它沒有回來,我想從頁面的HTML ..但它給了我一個空字符串 – 2014-12-01 23:23:07

+0

管理解決這個使用依賴項服務 – 2014-12-02 08:57:15

回答

0

你可以試試這個,看看它是否會拋出任何異常?我在一臺設備上測試了它,它似乎工作得很好。

public static Page GetMainPage() 
    { 
     var button = new Button 
      { 
       Text = "Click to display web page", 
       VerticalOptions = LayoutOptions.CenterAndExpand, 
       HorizontalOptions = LayoutOptions.CenterAndExpand, 
      }; 

     var page = new ContentPage 
     { 
      Content = button 
     }; 

     button.Clicked += async (s, e) => 
      { 
       try 
       { 
        var webPage = await new HttpClient().GetStringAsync(new Uri("http://www.google.se")); 
        await page.DisplayAlert("alert", webPage, "ok", "cancel"); 
       } 
       catch (Exception ex) 
       { 
        System.Diagnostics.Debug.WriteLine(ex.Message); 
       } 
      }; 



     return page; 
    } 
+0

對我來說,dosent顯示網頁的HTML?它仍然只是顯示一個空白 – 2014-12-02 08:08:18

+0

你是否在代理的背後? – 2014-12-02 11:45:10

+0

一切似乎都很好。你確定你提供了所有的權限嗎? – Kowalski 2015-03-14 01:03:25