public DetailPage(ItemRss item) { InitializeComponent(); this.item = item; BindingContext = new DetailViewModel(item); }
public DetailViewModel(ItemRss feedData) { SharedCommad = new Command(SharedLink_Clicked); OpenBrowserCommand = new Command(OpenBrowser_Clicked); this.ImageSource = feedData.Imagem; Title = feedData.Titulo; Descricao = "<html>" + "<body style=\"text-align: justify;\">" + feedData.Descricao + "</body>" + "</html>"; link = feedData.Link; }
public async Task <ObservableCollection <ItemRss> > BaixarFeed(string url) { using (Acr.UserDialogs.UserDialogs.Instance.Loading("Carregando feed...")) { var client = new HttpClient(); client.DefaultRequestHeaders.Add("User-Agent", "Other"); HttpResponseMessage response; response = await client.GetAsync(url); var content = await response.Content.ReadAsStringAsync(); XElement xmlitems = XElement.Parse(content); List <XElement> elements = xmlitems.Descendants("item").ToList(); var aux = new ObservableCollection <ItemRss>(); foreach (XElement rssItem in elements) { var rss = new ItemRss(); rss.Descricao = rssItem.Element("description").Value; rss.Link = rssItem.Element("link").Value; rss.Titulo = rssItem.Element("title").Value; rss.Data = rssItem.Element("pubDate").Value.Remove(17); string url2 = rssItem.Element("enclosure") != null?rssItem.Element("enclosure").ToString() : "empty"; var reg = new Regex("url=(?:\"|\')?(?<imgSrc>[^>]*[^/].(?:JPG|jpg|bmp|gif|png))(?:\"|\')?"); var match = reg.Match(url2); if (match.Success) { var encod = match.Groups["imgSrc"].Value; rss.Imagem = encod; } else { rss.Imagem = "d24amLogo.jpg"; } aux.Add(rss); } return(aux); } }