310 likes | 427 Views
Notyfikacje PUSH. Maciej Grabek. http://maciejgrabek.com. Bio. Praca: Allegro Group Sp. z o. o. Po godzinach: Toruńska Grupa Deweloperów .NET http://maciejgrabek.com CodeGuru.pl i Channel 9 Windows Phone 7, Windows Communication Foundation. Agenda. Nowa platforma mobilna Narzędzia
E N D
Notyfikacje PUSH • Maciej Grabek • http://maciejgrabek.com
Bio • Praca: • Allegro Group Sp. z o. o. • Po godzinach: • Toruńska Grupa Deweloperów .NET • http://maciejgrabek.com • CodeGuru.pl i Channel 9 • Windows Phone 7, Windows CommunicationFoundation
Agenda • Nowa platforma mobilna • Narzędzia • Możliwości • Mechanizm notyfikacji • Architektura • Rodzaje notyfikacji • Raw • Toast • Tile
Unifikacja sprzętu Multimedia Dokładna specyfikacja Akceleracja kodeków Rozdzielczość 480x800 QVGA 320x480 HVGA 800 lub 480 Ekr. pojemnościowy 4 lub więcej punktów Pamięć 256MB RAM lub więcej 8GB flash lub więcej Sensory A-GPS, Akcelerometr, Kompas, Światło, Czujnik zbliżeniowy GPU Akceleracja DirectX 9 Aparat 5 mega pixeli lub więcej 480 lub 320 Radio FM Przyciski Start, Szukaj, Wstecz
Interfejs telefonu • Analogiczny do przeglądarki internetowej • 3 przyciski • Wstecz • Start • Wyszukiwanie
Jak zacząć? • Windows Phone 7 Developer Tools • Visual Studio 2010 Express For Windows Phone • Microsoft Expression Blend 4 For Windows Phone • Windows Phone 7 Emulator • XNA Game Studio 4.0 • Silverlight For Windows Phone • https://www.microsoft.com/express/Phone • SilverlightToolkit • http://silverlight.codeplex.com/
Mechanizm notyfikacji
Mechanizm notyfikacji • Wysyłanie powiadomień do telefonu • Zmniejszenie zużycia baterii • Sposób na „operacje w tle” • Wykorzystanie Microsoft PushNotification Services • Microsoft.Phone.Notification • HttpNotificationChannel • HttpNotificationReceived • ShellToastNotificationReceived
Architektura Microsoft PushNotification Services otwórz kanał pobierz URL przekaż swój URL Aplikacja zewnętrzna / serwis
Architektura Microsoft PushNotification Services RAW TOAST TILE status wiadomość Aplikacja zewnętrzna / serwis
Rodzaje notyfikacji Tile Toast RAW
Przygotowanie wiadomości • Wiadomość w postaci byte[] • byte[] payload = Encoding.UTF8.GetBytes(dataStr); • Request HttpWebRequestrequest = (HttpWebRequest)WebRequest.Create(channelUri); request.Method = WebRequestMethods.Http.Post; request.ContentType = "text/xml; charset=utf-8"; request.ContentLength = payload.Length; request.Headers.Add("X-MessageID", Guid.NewGuid().ToString()); request.Headers["X-NotificationClass"] = ((int)notificationType).ToString(); using (StreamrequestStream = request.GetRequestStream()) { requestStream.Write(payload, 0, payload.Length); requestStream.Close(); }
Wysyłka wiadomości • Request do Microsoft PushNotification Service • Informacje zwrotne HttpWebResponseresponse = (HttpWebResponse)request.GetResponse(); stringnotificationStatus = response.Headers["X-NotificationStatus"]; stringnotificationChannelStatus = response.Headers["X-SubscriptionStatus"]; stringdeviceConnectionStatus = response.Headers["X-DeviceConnectionStatus"];
Klient • HttpNotificationChannel • HttpNotificationChannel.Find(channelName); • newHttpNotificationChannel(channelName); • httpChannel.Open(); • HttpNotificationReceived • BindToShellToast(); • BindToShellTile([uris]);
RAW • Wiadomość o dowolnym formacie • Przykład <?xml version="1.0" encoding="utf-8"?> <MyRawMessage> <Content>{0}</Content> </MyRawMessage>
Toast • Określony format wiadomości • Text1 – rodzaj tytułu • Text2 – mini wiadomość • Dodatkowy nagłówek <?xml version="1.0" encoding="utf-8"?> <wp:Notificationxmlns:wp="WPNotification"> <wp:Toast> <wp:Text1>{0}</wp:Text1> <wp:Text2>{1}</wp:Text2> </wp:Toast> </wp:Notification> request.Headers["X-WindowsPhone-Target"] = "toast";
Tile • Określony format wiadomości • BackgroundImage - tło • Count – znaczek ilości • Title – tytuł • Dodatkowy nagłówek <?xml version="1.0" encoding="utf-8"?> <wp:Notificationxmlns:wp="WPNotification"> <wp:Tile> <wp:BackgroundImage>{0}</wp:BackgroundImage> <wp:Count>{1}</wp:Count> <wp:Title>{2}</wp:Title> </wp:Tile> </wp:Notification> request.Headers["X-WindowsPhone-Target"] = "token";
Zasięg 30 rynków
Marketplace - warunki • Rejestracja - 100 USD za rok • Studenci • 100 aplikacji bezpłatnych, kolejne 19,99 USD • Model reklamowy • Dowolna liczba aplikacji płatnych • http://create.msdn.com • Rejestracja i weryfikacja konta • Możliwość przetestowania w biurze Microsoft lub na ITAD
Polecam • Kurs Windows Phone 7 na Channel9 • Cykl artykułów na Codeguru.pl • WP7 dla programistów • http://maciejgrabek.com – mój blog
Maciej Grabek • http://maciejgrabek.com • kontakt@maciejgrabek.com