• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

Windows8应用开发开发之RSS阅读器实例

时间:2015年04月02日 15:23:48    来源:魔法猪系统重装大师官网    人气:8749

先上运行截图:

简单说明:右侧主要内容的显示使用了浏览器控件WebView,另外,一些说明放在了代码注释中。

本应用只有一张页面MainPage

前台代码如下:
XAML

 1 
 9     
10         
15         30
16     
17 
18     
19         
20             
21             
22         
23         
24             
25                 
26                 
27                 
28                 
29                 
30                 
31             
32             
33             

后台代码如下:

C#

  1 using System;
  2 using System.Collections.Generic;
  3 using System.IO;
  4 using System.Linq;
  5 using System.Threading.Tasks;
  6 using Windows.Foundation;
  7 using Windows.Foundation.Collections;
  8 using Windows.Storage;
  9 using Windows.UI.Xaml;
 10 using Windows.UI.Xaml.Controls;
 11 using Windows.UI.Xaml.Controls.Primitives;
 12 using Windows.UI.Xaml.Data;
 13 using Windows.UI.Xaml.Input;
 14 using Windows.UI.Xaml.Media;
 15 using Windows.UI.Xaml.Navigation;
 16 using Windows.Web.Syndication;
 17 
 18 namespace Win8RssReader
 19 {
 20     public sealed partial class MainPage : Page
 21     {
 22         SyndicationClient syndicationClient;
 23         SyndicationFeed currentFeed;
 24 
 25         /// 
 26         /// WebView在打开target="_blank"的超链接时会打开电脑上的浏览器,为了避免这种情况,这段js可通过更改DOM,使所有超链接的target="_self"。
 27         /// 
 28         string MyJs { get; set; }
 29 
 30         public MainPage()
 31         {
 32             this.InitializeComponent();
 33         }
 34 
 35         async protected override void OnNavigatedTo(NavigationEventArgs e)
 36         {
 37             MyJs = await GetMyJs();
 38         }
 39 
 40         private async Task GetMyJs()
 41         {
 42             StorageFile jsFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///js.txt"));
 43             string jsText = await FileIO.ReadTextAsync(jsFile);
 44             return jsText;
 45         }
 46 
 47         private async void btnGetFeed_Click(object sender, RoutedEventArgs e)
 48         {
 49             string feedUriString = txtFeedUri.Text;
 50             await GetFeedAsync(feedUriString);
 51             DisplayFeed();
 52         }
 53 
 54         private async Task GetFeedAsync(string feedUriString)
 55         {
 56             Uri uri;
 57             if (!Uri.TryCreate(feedUriString.Trim(), UriKind.Absolute, out uri))
 58             {
 59                 txtMsg.Text = "url错误";
 60                 return;
 61             }
 62             if (syndicationClient == null)
 63             {
 64                 syndicationClient = new SyndicationClient();
 65             }
 66             syndicationClient.BypassCacheOnRetrieve = true;
 67             syndicationClient.SetRequestHeader("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
 68             txtMsg.Text = "开始下载...";
 69             try
 70             {
 71                 currentFeed = await syndicationClient.RetrieveFeedAsync(uri);
 72                 txtMsg.Text = "下载完成";
 73             }
 74             catch (Exception ex)
 75             {
 76                 txtMsg.Text = ex.Message;
 77             }
 78         }
 79 
 80         private void DisplayFeed()
 81         {
 82             if (currentFeed != null)
 83             {
 84                 ISyndicationText title = currentFeed.Title;
 85                 txtFeedTitle.Text = title != null ? title.Text : "(没有标题)";
 86                 txtCount.Text = currentFeed.Items.Count.ToString();
 87                 listTitle.ItemsSource = currentFeed.Items;
 88                 listTitle.SelectedIndex = 0;//选中第0条,触发SelectionChanged事件。
 89             }
 90         }
 91 
 92         private void listTitle_SelectionChanged(object sender, SelectionChangedEventArgs e)
 93         {
 94             var item = (SyndicationItem)listTitle.SelectedValue;
 95             DisplayCurrentItem(item);
 96         }
 97 
 98         private void DisplayCurrentItem(SyndicationItem item)
 99         {
100             if (item != null)
101             {
102                 txtItemTitle.Text = item.Title != null ? item.Title.Text : "(没有标题)";
103                 string content = "(没有内容)";
104                 if (item.Content != null)
105                 {
106                     content = item.Content.Text;
107                 }
108                 else if (item.Summary != null)
109                 {
110                     content = item.Summary.Text;
111                 }
112                 content += MyJs;
113                 webViewContent.NavigateToString(content);
114             }
115         }
116     }
117 }

引用文件js.txt中的内容如下:

题外话:

感觉现在做Windows Store App开发的很少哦,真心希望能和感兴趣的朋友们交流交流。

Windows8,应用开发,开,发之,RSS,阅读,器,实例
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部