精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Windows Phone開發(45):推送通知大結局之Raw通知

移動開發
Raw推送通知比起前面兩種更簡單,因為它沒有規范的格式,只要你向指定URI POST一個字節流數組就OK,也就是說,只要能變成byte[]的東西都可以發送。不過,不應該發送過大的數據,一般用于發送一些簡短的文本信息就行了,別想著用來發送文件!

為什么叫大結局呢?因為推送通知服務就只有三種,前面扯了兩種,就剩下一種——Raw通知。

前面我們通過兩節的動手實驗,相信大家都知道了,推送通知其實并不復雜,為什么呢?你看到了的,不管是哪種方式,使用方法基本一樣,如果你不愿意寫代碼的話,完全可以把代碼Copy幾下就完事了,三種推送通知的實現代碼是一樣的,而僅僅是發送的內容不同罷了。

Raw推送通知比起前面兩種更簡單,因為它沒有規范的格式,只要你向指定URI POST一個字節流數組就OK,也就是說,只要能變成byte[]的東西都可以發送。不過,不應該發送過大的數據,一般用于發送一些簡短的文本信息就行了,別想著用來發送文件!!

嚴重提醒:要接收Raw通知,你的WP應用程序必須在前臺運行,不然是收不到的,之與Toast通知可不一樣,如果你的程序不在前臺運行,推送的通知就會被XX掉。

好了,F話就不說了,開始操練吧。

先做發送通知的服務器端,這回就用WPF來做吧,界面我先截個TU。

這就是用WPF的好處,截圖中大家未必能看到窗口上用到哪些控件,設置了哪些屬性,但是,如果我把XAML一貼,我想大家就懂了。

  1. <Window x:Class="RawNtfServer.MainWindow"   
  2.         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   
  3.         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"   
  4.         Title="Raw通知服務器端" Height="350" Width="525">   
  5.     <Grid>   
  6.         <Grid.RowDefinitions>   
  7.             <RowDefinition Height="Auto" />   
  8.             <RowDefinition />   
  9.             <RowDefinition />   
  10.         </Grid.RowDefinitions>   
  11.         <Grid Grid.Row="0">   
  12.             <Grid.ColumnDefinitions>   
  13.                 <ColumnDefinition Width="auto"/>   
  14.                 <ColumnDefinition Width="*"/>   
  15.                 <ColumnDefinition Width="auto"/>   
  16.             </Grid.ColumnDefinitions>   
  17.             <TextBlock Grid.Column="0" Text="目標URI:" VerticalAlignment="Center"/>   
  18.             <TextBox Name="txtUri" Grid.Column="1" Margin="2" Background="#FFD8E4E4"/>   
  19.             <Button Grid.Column="2" Padding="8,3,8,3" Margin="7,2,3,2" Content="發送" Click="OnSend"/>   
  20.         </Grid>   
  21.         <GroupBox Grid.Row="1" Header="發送內容">   
  22.             <TextBox VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" Name="txtMsg" Background="#FFECF4D7" />   
  23.         </GroupBox>   
  24.         <GroupBox Grid.Row="2" Header="回應內容">   
  25.             <TextBox Name="txtResp" VerticalScrollBarVisibility="Auto" TextWrapping="Wrap" Background="#FFC9EDFA" />   
  26.         </GroupBox>   
  27.     </Grid>   
  28. </Window>   

好,前臺干好了,去搞搞后臺吧。

  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Linq;   
  4. using System.Text;   
  5. using System.Windows;   
  6. using System.Windows.Controls;   
  7. using System.Windows.Data;   
  8. using System.Windows.Documents;   
  9. using System.Windows.Input;   
  10. using System.Windows.Media;   
  11. using System.Windows.Media.Imaging;   
  12. using System.Windows.Navigation;   
  13. using System.Windows.Shapes;   
  14. using System.Net;   
  15. using System.IO;   
  16. using System.Net.Mime;   
  17. namespace RawNtfServer   
  18. {   
  19.     /// <summary>   
  20.     /// MainWindow.xaml 的交互邏輯   
  21.     /// </summary>   
  22.     public partial class MainWindow : Window   
  23.     {   
  24.         public MainWindow()   
  25.         {   
  26.             InitializeComponent();   
  27.         }   
  28.         private void OnSend(object sender, RoutedEventArgs e)   
  29.         {   
  30.             if (txtUri.Text==""||txtMsg.Text=="")   
  31.             {   
  32.                 MessageBox.Show("請輸入必備的參數。"); return;   
  33.             }   
  34.             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(txtUri.Text);   
  35.             request.Method = WebRequestMethods.Http.Post;   
  36.             request.ContentType = MediaTypeNames.Text.Plain;   
  37.             // HTTP標頭:   
  38.             // X-NotificationClass:3   
  39.             // 3:立即發送   
  40.             // 13:450秒后發送   
  41.             // 23:900秒后發送   
  42.             request.Headers.Add("X-NotificationClass""3");   
  43.             byte[] buffer = Encoding.UTF8.GetBytes(txtMsg.Text);   
  44.             request.ContentLength = buffer.Length;   
  45.             using (Stream s = request.GetRequestStream())   
  46.             {   
  47.                 s.Write(buffer, 0, buffer.Length);   
  48.             }   
  49.             // 接收響應   
  50.             HttpWebResponse response = (HttpWebResponse)request.GetResponse();   
  51.             string hds = "";   
  52.             foreach (string key in response.Headers.AllKeys)   
  53.             {   
  54.                 hds += key + " : " + response.Headers.Get(key) + "\r\n";   
  55.             }   
  56.             txtResp.Text = hds;   
  57.         }   
  58.     }   
  59. }   

有沒有覺得代碼很熟悉?和前兩節中的例子像不?

好了,服務器端Done,下面輪到WP客戶端了。

布局不用TU了,放心,無圖有真相。上XAML。

  1. <!--ContentPanel - 在此處放置其他內容-->   
  2. <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">   
  3.     <ListBox Name="lbMsg"/>   
  4. </Grid> 

簡單吧,就一個控件——ListBox,待會兒我們接受到的通知,就扔到它里面。

OK,看看后臺的C#代碼。

  1.     using System;   
  2.     using System.Collections.Generic;   
  3.     using System.Linq;   
  4.     using System.Net;   
  5.     using System.Windows;   
  6.     using System.Windows.Controls;   
  7.     using System.Windows.Documents;   
  8.     using System.Windows.Input;   
  9.     using System.Windows.Media;   
  10.     using System.Windows.Media.Animation;   
  11.     using System.Windows.Shapes;   
  12.     using Microsoft.Phone.Controls;   
  13.     using Microsoft.Phone.Notification;   
  14.     namespace WPClient   
  15.     {   
  16.         public partial class MainPage : PhoneApplicationPage   
  17.         {   
  18.             // 構造函數   
  19.             public MainPage()   
  20.             {   
  21.                 InitializeComponent();   
  22.                 HttpNotificationChannel Channel = null;   
  23.                 string ChannelName = "raw";   
  24.                 Channel = HttpNotificationChannel.Find(ChannelName);   
  25.                 if (Channel==null)   
  26.                 {   
  27.                     Channel = new HttpNotificationChannel(ChannelName);   
  28.                     Channel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(Channel_ChannelUriUpdated);   
  29.                     Channel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(Channel_ErrorOccurred);   
  30.                     Channel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(Channel_HttpNotificationReceived);   
  31.                     Channel.Open();   
  32.                 }   
  33.                 else   
  34.                 {   
  35.                     Channel.ChannelUriUpdated += new EventHandler<NotificationChannelUriEventArgs>(Channel_ChannelUriUpdated);   
  36.                     Channel.ErrorOccurred += new EventHandler<NotificationChannelErrorEventArgs>(Channel_ErrorOccurred);   
  37.                     Channel.HttpNotificationReceived += new EventHandler<HttpNotificationEventArgs>(Channel_HttpNotificationReceived);   
  38.                     System.Diagnostics.Debug.WriteLine("URI: {0}", Channel.ChannelUri.ToString());   
  39.                 }   
  40.             }   
  41.             void Channel_HttpNotificationReceived(object sender, HttpNotificationEventArgs e)   
  42.             {   
  43.                 string msg = "";   
  44.                 using (System.IO.Stream stream=e.Notification.Body)   
  45.                 {   
  46.                     System.IO.StreamReader rd = new System.IO.StreamReader(stream, System.Text.Encoding.UTF8);   
  47.                     msg = rd.ReadToEnd();   
  48.                 }   
  49.                 Dispatcher.BeginInvoke(() =>   
  50.                     {   
  51. this.lbMsg.Items.Add(DateTime.Now.ToLongTimeString() + "  " + msg);   
  52.                     });   
  53.             }   
  54.             void Channel_ErrorOccurred(object sender, NotificationChannelErrorEventArgs e)   
  55.             {   
  56.                 Dispatcher.BeginInvoke(() =>   
  57.                     {   
  58.                         MessageBox.Show(e.Message);   
  59.                     });   
  60.             }   
  61.             void Channel_ChannelUriUpdated(object sender, NotificationChannelUriEventArgs e)   
  62.             {   
  63.                 Dispatcher.BeginInvoke(() =>   
  64.                     {   
  65.                         System.Diagnostics.Debug.WriteLine("URI: {0}",e.ChannelUri.ToString());   
  66.                     });   
  67.             }   
  68.         }   
  69.     }   

避免有朋友說代碼看不懂,這回我是Ctrl + A后再貼出來的。

下面來執行一下,首先運行WP端,可以同時運行,隨你喜歡。但至少要讓WP模擬器或手機收到云服務器分配的URI。

把這個URI復制,填到服務器端的窗口中,然后輸入你要發送的東東,點擊“發送”。

嗯,就是這樣用,應該不復雜吧?

在收發消息的過程中,編碼時建議使用UTF-8,貌似這個不會有亂碼。

哈,牛就吹到這了,下一節我們玩一玩比較恐怖的東西——Socket。

責任編輯:閆佳明 來源: oschina
相關推薦

2013-04-25 14:15:53

Windows PhoWindows PhoWindows Pho

2012-08-16 11:31:30

Windows Pho

2013-04-25 14:05:20

Windows PhoWindows PhoWindows Pho

2013-07-31 13:13:50

Windows PhoMVVM模式

2020-03-04 14:35:34

戴爾

2011-08-03 16:45:09

iPhone APNS 推送通知

2013-11-27 10:52:48

360騰訊

2020-03-11 16:00:55

戴爾

2011-04-06 09:33:40

Push動互聯網

2013-04-19 17:11:02

Windows PhoWindows Pho

2013-04-24 13:43:10

Windows Pho動畫PointAnim

2013-04-24 13:19:06

Windows Pho動畫DoubleAni

2013-04-24 13:31:59

Windows Pho動畫之ColorAni

2010-08-01 15:16:41

Android

2013-04-23 16:55:15

Windows Pho路徑之其它Geomet

2013-07-31 13:36:07

Windows PhoVS調試技巧Windows Pho

2025-03-11 08:25:00

網絡犯罪網絡詐騙惡意推送

2011-05-04 14:40:57

推送通知iOS

2011-07-18 13:56:19

2010-04-21 17:07:54

Windows Pho
點贊
收藏

51CTO技術棧公眾號

久久精品在线播放| 成人午夜精品在线| 亚洲新中文字幕| 国产免费人做人爱午夜视频| 日本啊v在线| 久久久久国产精品一区二区| 国产午夜精品免费一区二区三区| 少妇一级淫免费播放| 欧美一级二级三级区| 国产一区二区伦理| 久久久久女教师免费一区| 精品国产一区在线| 久久天堂av| 日本视频在线观看| 国产91精品对白在线播放| 高跟丝袜一区二区三区| 国产精品对白一区二区三区| 亚洲天堂视频网站| 日韩欧美国产精品综合嫩v| 欧美精品一二三| 国产精品久久久久久久久电影网| 日韩偷拍自拍| 久久91精品国产91久久小草 | 日本福利视频一区| 精品无人乱码| 国产精品一区二区男女羞羞无遮挡| 久久免费视频网| 中文字幕第二区| 亚洲精品aa| 天天综合网 天天综合色| 亚洲一区二区自拍偷拍| 全国男人的天堂网| 久久99热这里只有精品| 97激碰免费视频| 麻豆网址在线观看| 中文字幕中文字幕精品| 日韩一区二区免费视频| 国产一区视频免费观看| 手机在线免费观看av| 日本一区二区免费在线观看视频| 亚洲jizzjizz日本少妇| 国产一级爱c视频| 无码任你躁久久久久久老妇| 国产va在线视频| 中文字幕一区av| 欧美激情专区| 欧美特级特黄aaaaaa在线看| 久久精品国产**网站演员| 26uuu亚洲伊人春色| 农村黄色一级片| 久久视频精品| 亚洲美女激情视频| 亚洲激情 欧美| 欧美爱爱视频| 91精品1区2区| 久久综合九色综合88i| 伊人精品影院| 国产精品久久久久久久久久免费看| 精品免费二区三区三区高中清不卡| 99在线精品视频免费观看20| 亚洲女同同性videoxma| 色综合久久88| 欧美成人手机视频| 女同性一区二区三区人了人一| 亚洲欧美中文字幕| 精品黑人一区二区三区观看时间| eeuss国产一区二区三区四区| 91麻豆精品国产无毒不卡在线观看| 特级丰满少妇一级| 日本成人伦理电影| 欧美日韩国产高清一区| 色姑娘综合天天| av综合网站| 亚洲跨种族黑人xxx| 国产ts在线播放| 水蜜桃久久夜色精品一区| 久久九九精品99国产精品| 免费在线视频一区二区| 夜夜嗨网站十八久久| 日韩美女av在线免费观看| 中文字幕日产av| 国产精品一二三四五| 国产伦精品一区二区三区视频免费| 天天综合永久入口| 亚洲国产精华液网站w| 400部精品国偷自产在线观看 | 国产精品久久久久永久免费观看 | 一本一道波多野毛片中文在线| 中文字幕中文在线不卡住| 一本大道东京热无码aⅴ| av美女在线观看| 精品视频在线免费看| 91视频福利网| 免费看av成人| 欧美日韩国产成人在线观看| 影音先锋在线国产| 极品销魂美女一区二区三区| 国产日韩亚洲精品| yw193.com尤物在线| 亚洲精品国产无天堂网2021| 日本不卡在线观看视频| 欧美国产中文高清| 精品亚洲一区二区三区四区五区| 69夜色精品国产69乱| 99在线|亚洲一区二区| 国产日韩在线精品av| 欧美一级一区二区三区| 国产精品美女一区二区三区 | 日本伊人精品一区二区三区观看方式| 亚洲va国产va天堂va久久| 人成在线免费视频| 亚洲自拍偷拍麻豆| 亚洲高清免费在线观看| 无码少妇一区二区三区| 欧美第一黄色网| 中文字幕乱码一区二区| 91性感美女视频| 在线观看三级网站| 国产91在线播放精品| 日韩精品视频在线观看网址 | 欧美国产先锋| 国产精品成人一区二区| 天天插天天干天天操| 亚洲视频一二区| 美女网站视频黄色| 欧美激情在线免费| 欧美极品美女视频网站在线观看免费| 亚洲性猛交富婆| 91蝌蚪国产九色| 久久av综合网| 日韩三级精品| www高清在线视频日韩欧美| 天天爽夜夜爽人人爽| 99在线精品一区二区三区| 黄色一级大片免费| 精品一区91| 久久精品国产亚洲| 91精品国产乱码久久久| 国产精品久久久久三级| 三年中国国语在线播放免费| 亚洲国产精品嫩草影院久久av| 高清欧美一区二区三区| 亚洲精品成人电影| 亚洲一区二区三区四区在线免费观看| 色黄视频免费看| 91精品国产自产拍在线观看蜜| 国产精品视频永久免费播放| 成人午夜电影在线观看| 在线免费一区三区| 中文字幕av久久爽一区| 青青草97国产精品免费观看| 五月天久久综合网| 精品国产美女a久久9999| 最近2019年好看中文字幕视频| 中文字幕精品一区二| 国产精品人妖ts系列视频| 欧美三级午夜理伦三级富婆| 日本不卡二三区| 亚洲xxxxx性| 在线视频中文字幕第一页| 欧美sm美女调教| 成人精品在线看| 久久久久久久久久久黄色| 欧美精品第三页| 青青草综合网| 97se亚洲综合| 成人影院在线视频| 亚洲精品小视频| 中国精品一区二区| 亚洲日本一区二区三区| 无码人妻一区二区三区一| 91久久午夜| 欧美中日韩一区二区三区| 国产亚洲人成a在线v网站 | 欧美12av| 97久久网站| 成人97在线观看视频| 亚洲产国偷v产偷v自拍涩爱| 精品成人久久av| 亚洲一区二区自偷自拍| 激情五月播播久久久精品| 黄色一级视频在线播放| 国产精品片aa在线观看| 国产日韩在线播放| a'aaa级片在线观看| 亚洲欧美综合v| 国产精品亚洲欧美在线播放| 亚洲图片欧美一区| 亚洲图片第一页| 国产成a人亚洲| 亚洲综合在线网站| 欧美精品三区| 日韩av电影免费在线观看| 国产日韩中文在线中文字幕| 5278欧美一区二区三区| 亚洲搞黄视频| 亚洲精品大尺度| 蜜臀av午夜精品久久| 911国产在线| 欧美一区二区三区不卡视频| 麻豆成人av在线| 欧美一级爱爱视频| 最新国产一区| 97视频资源在线观看| 亚洲最大网站| 麻豆乱码国产一区二区三区| www.午夜激情| 99热这里只有成人精品国产| 日本在线高清视频一区| 视频在线观看免费影院欧美meiju| 国产成人精品av在线| 免费在线看电影| 在线播放精品一区二区三区| 人妻精品一区一区三区蜜桃91| 欧美日韩一区二区三区四区五区| 一区二区三区视频免费看| 亚洲欧美一区二区视频| 波多野结衣a v在线| 成人app下载| 亚洲图片 自拍偷拍| 日韩av一区二区三区| 国产美女网站在线观看| 欧美激情自拍| 影音先锋亚洲视频| 红桃成人av在线播放| 国内成+人亚洲| 国产精品tv| 97久久精品午夜一区二区| 91精品国产一区二区在线观看| 国产精品福利在线| 成人直播视频| 91av在线视频观看| 第一福利在线视频| 欧美国产日韩一区| a天堂中文在线官网在线| 国产亚洲欧美日韩精品| 你懂的在线免费观看| 日韩精品视频在线观看网址 | 美女在线视频一区| 女人另类性混交zo| 香蕉国产精品偷在线观看不卡| www.av91| 狠狠入ady亚洲精品经典电影| 欧美aaa在线观看| 小小影院久久| 四虎永久免费网站| 忘忧草精品久久久久久久高清| 亚洲精品一区二区三| 欧美一区二区三区高清视频| 日韩三级电影| 日韩成人a**站| 影音先锋在线亚洲| 欧美精品三级| 免费一级特黄毛片| 国产一区二区三区的电影| 日韩人妻精品无码一区二区三区| 亚洲欧美高清| 毛葺葺老太做受视频| 免费成人小视频| 国产又黄又猛的视频| 韩国一区二区三区| 性生活在线视频| 风流少妇一区二区| 国产一级伦理片| 91麻豆国产在线观看| 亚洲精品一区二区三区影院忠贞| 国产农村妇女毛片精品久久麻豆| 欧美激情 一区| 亚洲天堂免费在线观看视频| 九九久久免费视频| 好吊成人免视频| 最近中文字幕在线免费观看| 91精品国产综合久久精品麻豆| www.99视频| 国产网站欧美日韩免费精品在线观看| 欧美香蕉爽爽人人爽| 上原亚衣av一区二区三区| 黄色网页在线看| 91精品国产91久久久久久不卡| 国产另类xxxxhd高清| 91精品视频专区| 美女一区2区| 亚洲精品一区二区毛豆| 伊人久久大香线蕉综合热线| 亚洲色图38p| 国产v日产∨综合v精品视频| 蜜桃传媒一区二区亚洲av| 1024成人网| 欧美精品韩国精品| 欧美日韩1区2区| 色哟哟中文字幕| 日韩中文字幕视频在线观看| 高清视频在线观看三级| 国产精品欧美久久久| 欧美日韩国产一区二区在线观看| 久久久久久国产精品免费免费| 婷婷综合久久| 日本中文字幕片| 国产精品资源在线看| 欧美成人午夜精品免费| 亚洲女爱视频在线| 国产精品suv一区| 日韩久久免费av| 在线毛片网站| 欧美一区二区三区图| 清纯唯美激情亚洲| 日韩一区二区三区高清| 亚洲美女网站| 男插女视频网站| 中文字幕二三区不卡| 天天操天天摸天天干| 欧美一级淫片007| 国产1区2区3区在线| 91精品国产高清久久久久久91| 四虎精品在线观看| 欧美在线播放一区| 国产手机视频一区二区| 人妻精油按摩bd高清中文字幕| 欧美国产一区二区在线观看| 色网站在线播放| 精品区一区二区| 米奇精品一区二区三区| 国产精品久久久| 无码日韩精品一区二区免费| 国产一区二区三区小说| 国产精品一级片在线观看| 制服丨自拍丨欧美丨动漫丨| 色乱码一区二区三区88 | 亚洲一二三在线| 日韩伦理精品| 国产无套精品一区二区| 黄色工厂这里只有精品| 中文字幕avav| 亚洲激情自拍视频| 国内老熟妇对白hdxxxx| 久久伊人精品天天| 成人乱码手机视频| 一区二区三区四区国产| 麻豆91在线看| 老司机深夜福利网站| 欧美午夜理伦三级在线观看| 国产露出视频在线观看| 国产精品999| 精品国产91| 亚洲 欧美 另类人妖| 国产精品免费视频一区| 国产一区二区小视频| 日韩午夜在线视频| 国产激情综合| www婷婷av久久久影片| 成年人网站91| 国产免费观看av| 国产亚洲视频在线观看| 国产成人精品一区二区三区视频| 亚洲一区二区三区免费看| 久88久久88久久久| 天天天天天天天天操| 日韩精品一区二区三区在线 | 狠狠躁夜夜躁人人躁婷婷91| 午夜福利视频一区二区| 欧美一区二区.| 欧美老女人另类| 奇米视频888| 一区二区免费看| 日韩在线观看视频一区二区三区| 69av在线视频| 成人av二区| 欧美一区二区三区影院| 激情成人在线视频| 国产对白叫床清晰在线播放| 成人亲热视频网站| 精品动漫一区| 国内精品卡一卡二卡三| 欧美精品 日韩| hd国产人妖ts另类视频| 日韩一区二区电影在线观看| 国产真实精品久久二三区| xxxxxx国产| 中文字幕视频一区二区在线有码| 欧美欧美在线| 精品中文字幕av| 最新不卡av在线| 五月婷婷开心中文字幕| 国产美女久久精品| 亚洲国内欧美| 岛国片在线免费观看| 亚洲国产美女精品久久久久∴| 精品国模一区二区三区| 欧美狂野激情性xxxx在线观| 久久久青草青青国产亚洲免观| 97人妻精品一区二区三区软件| 欧美激情在线有限公司| 日韩av自拍| 日韩 中文字幕| 这里是久久伊人| 超级碰碰久久| 成年人深夜视频| 欧美—级在线免费片| 秋霞网一区二区| 91亚洲国产精品|