ườ Tr ọ ự ng ĐH Khoa H c T Nhiên TP.HCM
TRUNG TÂM TIN H CỌ
ậ
L p trình Windows Phone Module 4 – Bài 5: Push Notification
ạ
ầ
GV Biên so n: Tr n Duy Thanh
2014
Nội dung
• Giới thiệu
• Kiến trúc của Push Notifications
• Toast Notifications
• Tile Notifications
• Raw Notifications
2
Push Notification
1. Giới thiệu
Microsoft đã đưa ra một kênh mạnh mẽ cho các lập trình viên gửi và cập nhật thông tin cho ứng dụng mobile từ dịch vụ web (web service đã học trước đó), tính năng này được gọi là Push Notification Service.
3
Push Notification
2. Kiến trúc của Push Notifications
4
Push Notification
2. Kiến trúc của Push Notifications • Ứng dụng của bạn sẽ request một push nofitication
URI từ Push Client Service
• Push Client Service sẽ làm việc với Microsoft Push Notification Service(MPNS), và sau đó MPNS sẽ gửi về cho Push Client Service một notification URI.
• Push Client Service cấp phát cho ứng dụng của bạn
notification URI vừa trả về.
• Khi đã được cấp phát notification URI thì ứng dụng của bạn đã có thể trực tiếp làm việc với Service của bạn.
• Khi phía Service có thông tin để gửi tới ứng dụng của bạn, thì trước tiên Service sẽ gửi thông tin tới MPNS thông qua notification URI của ứng dụng.
• Cuối cùng là thông báo sẽ gửi tới ứng dụng của bạn.
5
Push Notification
3. Toast Notifications
Hiển thị thông báo ở trên top
của màn hình điện thoại,
giống như các thông báo khi
có tin nhắn, hay email mới:
6
Push Notification
4. Tile Notifications
Hiển thị thông tin phía các Huc LiveTile của ứng dụng (khi ứng dụng của bạn được Pin vào Start Screen).
7
Push Notification
5. Raw Notifications
Thường dùng để nhận mẩu tin khi đang chạy ứng dụng, có thể là Text File, Image file… Raw Notifications yêu cầu ứng dụng phải đang ở trong chế độ Foreground lifetime.
8
Push Notification
5. Raw Notifications
Để thực hiển Push hình ảnh từ Server tới Client:
ạ
9
Push Notification
T i Server: MemoryStream ms=new MemoryStream(); pictureBox1.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Png); sendNotificationRequest.ContentLength = ms.Length; using (Stream requestStream = sendNotificationRequest.GetRequestStream()) { requestStream.Write(ms.ToArray(), 0, (int)ms.Length); }
5. Raw Notifications
Tại mobile client:
void httpChannel_HttpNotificationReceived(object sender, HttpNotificationEventArgs e){ if (e.Notification.Body != null &&
e.Notification.Headers != null) { Dispatcher.BeginInvoke(() => { BitmapImage bitmapImage = new BitmapImage(); bitmapImage.SetSource(e.Notification.Body); myimage.Source = bitmapImage; }); } }
10
Push Notification
Bảng so sánh
PN Type Must Application Must Application Use
Be Running in Tile Be Pinned to
Foreground? Start Screen?
ườ ẩ ợ Toast No No Dùng cho các tr ng h p kh n
ạ ả ờ ụ ấ c p và th i gian nh y c m: Ví d
ấ ớ ả c nh báo s m ch p, bão…
ụ ư ế ể ậ Tile No Yes ậ Dùng đ c p nh t: Ví d ch đ m
ế ớ ố ườ ố s email m i, đ m ng i
comment trên Facebook…
ữ ệ ụ Raw Yes No D li u liên t c (Twitter client,
11
stock ticker)
Push Notification
Thảo luận
12
Push Notification