2014-12-01 46 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