Windows Phone 7: het nieuwe mobiele platform van Microsoft

Push Notificaties en Services

Het is dan eindelijk zover! Microsoft gaat zijn nieuwe mobiele besturingssysteem, Windows Phone 7, lanceren op 11 oktober 2010.

Alhoewel het ontbreken van de Nederlandse taal en beschikbaarheid van een Nederlandse Marketplace, kunnen ontwikkelaars toch alvast applicaties ontwikkelen en deze beschikbaar stellen op de Marketplace voor de zogenaamde EFIGS (Engels, Frans, Italiaans, Duits en Spaans) landen.

Helaas moeten we dus nog even wachten op de Nederlandse versie en Marketplace, maar verwacht wordt dat dit pas medio 2010 beschikbaar zal zijn.

Voor de ontwikkelaars onder ons die toch niet kunnen of willen wachten op de Nederlandse versie en internationale kansen zien om een leuke applicatie te lanceren, wil ik in dit artikel uitleggen hoe Push notificaties werken. Om te beginnen dien je allereerst nog even de ontwikkel Tools voor het Windows Phone 7 platform te downloaden op : http://developer.windowsphone.com/ Dit plaatje beschrijft het proces van een web service welke een push notificatie verzend naar een applicatie:

Het concept “Push Notificaties”

De techniek is als volgt te definiëren:
“Push notificaties geven de ontwikkelaar de mogelijkheid om te communiceren met de eindgebruiker zelfs als de mobiele telefoon in stand-by modus is en jou applicatie niet actief (afgesloten) is.
Hiermee geeft het tevens de eindgebruiker het “Always Connected” gevoel.”

Het is zeker geen nieuwe technologie van Microsoft en inmiddels maken verschillende mobiele besturingssystemen hier al geruime tijd gebruik van (ieder zijn eigen implementatie).
Wel is het dus nieuw op het Windows Phone platform en komt meteen beschikbaar in 3 smaken, namelijk:
• Toast
• Tile
• Raw

Toast notificaties

Dit zijn berichten die bij binnenkomst ten alle tijden zichtbaar zullen zijn op het mobiele beeldscherm van de eindgebruiker. Deze verstoord niet de normale workflow van de actieve applicatie en enige vorm van interactie is niet vereist, maar wel mogelijk.

Het maakt dus in feite niet uit welke applicatie actief is en welk scherm er getoond wordt. Een uitzondering hierop is dat het niet jou applicatie is welke op dat moment actief is op het scherm. Tevens hebben besturingssysteem meldingen voorrang op Push notificaties en komen bovenop een push melding. Een situatie wat waarschijnlijk niet vaak zal voorkomen, maar toch..

Een toast notificatie bestaat uit 2 tekst elementen welke bijgewerkt
kunnen worden n.l:

- Title
- Sub-title

Verder wordt jou applicatie icoon verkleind vertoont in de linker
hoek van de Toast bericht, zoals hieronder geïllustreerd.

Het is overigens verplicht om een opt-in / opt-out feature in je applicatie op te nemen.
Je mag dus niet zonder expliciete goedkeuring van de gebruiker zomaar Toast berichten versturen.
Het niet opnemen van een opt-in / opt-out feature resulteert in het worden afgekeurd van je applicatie in de Microsoft Marketplace.

Tile notificaties

Een Tile is een visuele en dynamische representatie van je applicatie. Je kunt dus je eigen “tile” plaatsen op  het hoofdscherm van het besturingssysteem, zoals hiernaast is afgebeeld.

Een Tile heeft de volgende eigenschappen:

• Background image (URI naar een plaatje: 173x173 pixels)
• Count (string)
• Title (string)

 

Raw Notificaties

Deze vorm van notificaties vereisen interactie van de eindgebruiker en zijn alleen beschikbaar en zichtbaar binnenin je eigen applicatie.

Echter niet te verwarren met popup of messagebox, want de inhoud hiervan kan tevens afkomstig zijn vanaf een push web service.

 

Push Notificatie – Implementatie

Nu het duidelijk is wat Push notificaties zijn en het onderscheid hiertussen, is het nu tijd
om de implementatie te demonstreren in code. Om push notificaties te versturen dienen we de volgende stappen door te nemen:
1. ML-PushService ; een WCF Service applicatie om push berichten te verzenden
2. ML-PushSender ; een WCF applicatie om push berichten in te voeren en te verzenden
3. ML-PushNotifications ; een Windows Phone 7 applicatie om push berichten te ontvangen

Onze solution zal dus bestaan uit 3 projecten.

Onze ServiceContract in ML-PushService / IPushService.cs ziet er als volgt uit:

Een deel van onze PushService.svc  code is als volgt:

In onze Windows Phone 7 Client applicatie dienen we ons te registeren voor de notificaties.
Dit gaat als volgt:

Vervolgens zorgen we ervoor dat de berichten die we verzenden in een listbox worden getoond:

De WFC Client applicatie zorgt ervoor dat je de notificatie service kunt testen en berichten naar de WP7 client applicatie kunt sturen:

Een complete demo applicatie + code met push notificaties kunt u downloaden via: http://downloads.mobilelayers.com/download.ashx?file=mlpushdemo

Geef feedback:

CAPTCHA image
Vul de bovenstaande code hieronder in
Verzend Commentaar