Posielanie notifikácií pre Windows 8 aplikácie II.

Námetom state je posielanie Push notifikácie z platformy Windows Azure Notification Hubs do Modern UI aplikácie, teda aplikácie pre Windows 8 a 8.1 distribuovanej cez Windows Store prostredníctvom Windows Push Notification service (WNS).

Paralelne vytvoríme tri odlišné projekty

  • Windows 8.1 aplikáciu, ktorá bude notifikácie prijímať a zobrazovať
  • Windows Azure notifikačnú službu
  • Aplikáciu, ktorá bude simulovať posielanie notifikácií z mobilných zariadení

Zosumarizujme si úvodnú situáciu. Zatiaľ nemáte vytvorené nič, ani aplikáciu, ani cloudovú notifikačnú službu. Najskôr vytvoríte aplikáciu, ktorá bude notifikácie prijímať a spracovávať. Aby mohla notifikácie prijímať, musí byť zaregistrovaná vo Windows obchode. Preto budete pracovať paralelne vo Visual Studiu a v Dashboarde vývojárskeho portálu. Aby ste mohli vami vytvorený projekt prepojiť so zaregistrovanou aplikáciou v Store, musíte postupovať tak, že najskôr zatiaľ neexistujúcu aplikáciu zaregistruje v Store a následne ju vytvoríte a projekt prepojíte so zaregistrovanou aplikáciou. Najlepšie to pochopíte na praktickom príklade

Registrácia aplikácie do Windows Store

V prvom kroku, skôr než vo Visual studiu vytvoríte projekt Windows Store aplikácie, ktorá bude notifikácie prijímať, musíte túto zatiaľ neexistujúcu aplikáciu zaregistrovať do Windows Store. Zatiaľ ju môžete publikovať, stačí zaregistrovať názov aplikácie a následne po prepojení s projektom budete definovať napojenie na notifikačnú službu.

Na vývojárskom portáli dev.windows.com sa prepnite do záložky Dashboard a aktivujte odkaz Submit an app.

Obr .1. Dashboard pre publikovanie Windows 8 aplikácie

Najskôr musíte pre svoju aplikáciu vymyslieť originálny názov, overiť si, či ho už niekto nepoužil, a ak nie, tak si tento názov pre aplikáciu rezervovať. Aktivujte odkaz App name a zadajte názov aplikácie. Ak je názov už registrovaný niekým iným, musíte vymyslieť iný. V našom príklade sme použili názov “Notifikácie”, takže tento názov použiť nemôžete.

Obr. 2. Registrovanie názvu aplikácie

Vytvorenie Windows 8.1 aplikácie, ktorá bude prijímať notifikácie

Jednoduchá Windows 8.1 aplikácia prakticky bez používateľského rozhrania bude mať len jedinú úlohu – zaregistrovať sa na príjem notifikácií a následne tieto notifikácie prijímať a zobrazovať.

Vo Visual Studiu vytvorte projekt Windows Store aplikácie. My sme použili programovací jazyk C# a najjednoduchšiu šablónu Blank App. Aby sme demonštrovali, že názov projektu nemusí byť totožný so zaregistrovaným názvom aplikácie, vytvorili sme projekt SpracovanieNotifikacii. Pripomíname, že predchádzajúcom kroku sme vo Windows obchode registrovali názov Notifikácie.

Obr. 3. Vytvorenie projektu Windows 8.1 aplikácie

Pre napojenie projektu na aplikáciu ktorá sa bude publikovať cez Windows obchod (zatiaľ sme ju tam len zaregistrovali) v okne Solution Explorer pravým tlačidlom myši aktivujte kontextové menu projektu a aktivujte položku Store -> Associate App with the Store….

Obr. 4. Prepojenie projektu so zaregistrovanou aplikáciou pre Windows obchod

Asociovanie projektu so zaregistrovanou aplikáciou pre Windows obchod v praxi znamená, že do projektu sa z vývojárskeho portálu Windows Obchodu do aplikačného manifestu vášho projektu nasledujúce atribúty:

  • Package Display Name
  • Package Name
  • Publisher ID
  • Publisher Display Name
  • Version


Obr. 5. Prepojenie s konkrétnym názvom zaregistrovanej aplikácie

 

Napojenie aplikácie na notifikačnú službu

V tomto kroku sa opäť prepnite do Dashboardu vášho vývojárskeho konta pre Windows Store aplikácie. Na stránke pre publikovanie aplikácie, ktorú ste zaregistrovali v prvom kroku tohto návodu kliknite na položku Services. Na stránke Services aktivujte odkaz Live Services site.

Obr. 6. prepojenie na Windows Azure Mobile Services

Na stránke Push notifications and Live Connect services info sa prepnite do záložky Authenticating your service. Zobrazia sa dva vygenerované bezpečnostné prvky:

  • Package Security Identifier (SID)
  • Client secret

Ich hodnoty si skopírujte na dôveryhodnú lokalitu a s nikým ich nezdieľajte.

Vytvorenie Notification Hub

V tejto fáze sa dejstvo presunie do vášho Windows Azure konta, ktoré musíte maž v tomto okamihu vytvorené a aktivované. Môžete použiť:

  • 30 dňové Free trial konto
  • Konto získané ako predplatiteľ MSDN
  • Konto študenta cez DreamsPark
  • Komerčné konto

Notification Hub budete vytvárať cez Windows Azure Management Portal
https://manage.windowsazure.com/

Novy Service Bus vytvoríte tlačidlom New, ktoré nájdete na dolnej aplikačnej lište portálu. Aktivujete položku App Services -> Service Bus ->Notification Hub -> Quick Create.

Obr. 7. Vytvorenie Notification Hub

Zadajte vhodný názov a potvrďte kliknutím na link Create a new Notification Hub v dolnej časti menu aplikačnej lišty

Obr. 8. Zadanie názvu pre Notification Hub

Po vytvorení, ktoré trvá niekoľko sekúnd nájdete vami vytvorený namespace pre Service Bus na portáli, v zložke SERVICE BUS.

Obr. 9. Novovytvorený namespace Service Bus v portáli, v zložke SERVICE BUS.

Kliknite na namespace novo vytvorenej služby, ktorý má implicitne názov nazov_notifikacnej_sluzby-ns a následne na záložku záložku Notifications hubs. Potom môžete vybrať konkrétny Notification hub (namespace ich môže obsahovať viac) . Pre vybraný hub sa prepnite do záložky Configure.

Zobrazí sa stránka, kde zadávate notifikačné parametre pre aplikácie na požadovaných platformách. Zatiaľ plánujeme posielať notifikácie pre Windows 8 aplikáciu, takže zadáte parametre pre WNS získané pri registrácii služby vo Windows Store Windows Store. Postup získania parametrov je popísaný v stati Napojenie aplikácie na notifikačnú službu. Zadanie potvrďte tlačidlom Save na aplikačnej lište (tlačidlo so symbolom diskety)

Obr. 10. Zadávanie parametrov pre Windows 8 aplikáciu získané z Windows Store

Prepnite sa do záložku Dashboard a následne kliknite na tlačidlo Connection Information umiestnené na aplikačnej lište (tlačidlo so symbolom kľúča). Zobrazí sa dialóg s parametrami na pripojenie k notifikačnej službe. Parametre si prípadne prekopírujte na vhodné miesto cez Clipboard.

Obr. 11. dialóg s parametrami na pripojenie k notifikačnej službe.

Napojenie Windows 8 aplikácie na Notification Hub

 

 

Obr. 12. Pridanie NuGet balíčka WindowsAzure.Messaging.Managed

 

Do súboru App.xaml.cs pridajte referencie na menné priestory

using Windows.Networking.PushNotifications;

using Microsoft.WindowsAzure.Messaging;

using Windows.UI.Popups;

 

V súbore App.xaml.cs pridajte do triedy App metódu

private async void InitNotificationsAsync()

{

var channel = await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();

 

var hub = new NotificationHub(“<hub name>”,

“<connection string with listen access>”);

var result = await hub.RegisterNativeAsync(channel.Uri);

 

//V prípade úspechu vráť registračné ID

if (result.RegistrationId != null)

{

var dialog = new MessageDialog(“Registrácia bola úspešná: ” +

result.RegistrationId);

dialog.Commands.Add(new UICommand(“OK”));

await dialog.ShowAsync();

}

};

 

Parametre v šípových zátvorkách <hub name>” a “<connection string with listen access>” nahradte reálnymi hodnotami pre vašu notifikačnú službu.

Ako prvý parameter zadajte názov vášho notifikačného hubu a druhý parameter bude hodnota z poľa DefaultListenSharedAccessSignature. Dialóg z parametrami pre daný hub zobrazíte kliknutím na tlačidlo Connection Information umiestnené na aplikačnej lište (tlačidlo so symbolom kľúča).

Volanie metódy InitNotificationsAsync() umiestnite na začiatok metódy OnLaunched. Teraz môžete aplikáciu spustiť. Po chvíli by sa mám mal zobraziť oznam o úspešnej registrácii aplikácie k notifikačnému hubu.

Obr. 13. Oznam o úspešnej registrácii aplikácie k notifikačnému hubu.

 

Obr. 14. Povolenie notifikácií pre Windows 8 aplikáciu

 

Posielanie notifikácií

Vo Visual Studiu vytvorte projekt aplikácie na posielanie notifikácií. Môže to byť napríklad konzolová aplikácia

Obr. 15. Projekt konzolovej aplikácie na posielanie notifikácií

 

Do projektu pridajte WindowsAzure.ServiceBus NuGet

Obr. 16. Pridanie NuGet balíčka WindowsAzure.ServiceBus

Do súboru Program.cs pridajte referenciu na menný priestor

using Microsoft.ServiceBus.Notifications;

 

V triede Program vytvorte metódu

private static async void SendNotificationAsync()

{

NotificationHubClient hub =

NotificationHubClient.CreateClientFromConnectionString( “<connection string

with full access>”, “<hub name>”);

var toast = @”<toast><visual><binding template=””ToastText01″”><text id=””1″”>
Toto je moja notifikácia!</text></binding></visual></toast>”;

await hub.SendWindowsNativeNotificationAsync(toast);

}

 

Parametre v šípových zátvorkách <hub name>” a “<connection string

with full access>” nahraďte reálnymi hodnotami pre vašu notifikačnú službu.

Volanie metódy pre vyslanie notifikačnej správy umiestnite do tela metódy Main()

static void Main(string[] args)

{

SendNotificationAsync();

Console.ReadLine();

}

 

Teraz môžete aplikáciu spustiť a ak je všetko v poriadku, zobrazí sa notifikačná správa

Obr. 17. Prijatie notifikačnej správy

Reklamy

Pridaj komentár

Zadajte svoje údaje, alebo kliknite na ikonu pre prihlásenie:

WordPress.com Logo

Na komentovanie používate váš WordPress.com účet. Odhlásiť sa / Zmeniť )

Twitter picture

Na komentovanie používate váš Twitter účet. Odhlásiť sa / Zmeniť )

Facebook photo

Na komentovanie používate váš Facebook účet. Odhlásiť sa / Zmeniť )

Google+ photo

Na komentovanie používate váš Google+ účet. Odhlásiť sa / Zmeniť )

Connecting to %s


%d bloggers like this: