ườ 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