Image
11.7.2016 0 Comments

Vývoj pre Windows 10 – Notifikácie / 13. časť

Späť na úvod >> Späť na programovanie >> Späť na seriál

V predchádzajúcej časti sme prebrali zobrazovacie možnosti aktívnych dlaždíc. Zobrazené aktuality na týchto dlaždiciach však používateľ uvidí iba na domácej obrazovke Štart. Ak práve pracuje s niektorou aplikáciou a táto potrebuje s používateľom operatívne komunikovať, má pre tento účel k dispozícii takzvané oznámenia. Fungovanie oznámení oveľa lepšie vystihuje pomenovanie v angličtine - „toast“ notification. Okno zo správou skutočne „vyskočí“ na pracovnej ploche podobne ako hrianka z hriankovača.

Oznámenia zobrazujú, čo je nové, v danom okamihu. Mali by sa využívať na zobrazenie správ, ktoré sú zaujímavé aj mimo kontextu aplikácie, aby aplikácia získala okamžitú pozornosť používateľa. Typickým príkladom je ak príde mailová správa, nastane čas udalosti, ktorú máte nastavenú v svojom kalendári a podobne. Oznámenia sú úplne pod kontrolou používateľa, ktorý sám rozhodne z ktorých aplikácií si želá dostávať oznámenia. Môže ich aj celkom vypnúť.

Možnosti povolenia a zakázania oznámení fungujú na úrovni operačného systému aj na úrovni jednotlivých aplikácií

Uvedieme syntax XAML kódu pre návrh oznámenia

<toast launch="app-defined-string">
  <visual>
    <binding template="ToastGeneric">
      <text>Sample</text>
      <text>This is a simple toast notification example</text>
      <image placement="AppLogoOverride" src="oneAlarm.png" />
    </binding>
  </visual>
  <actions>
    <action content="check" arguments="check" imageUri="check.png" />
    <action content="cancel" arguments="cancel" />
  </actions>
  <audio src="ms-winsoundevent:Notification.Reminder"/>
</toast>

napríklad

<toast launch="app-defined-string">
  <visual>
<binding template="ToastGeneric">
    <text>Photo Share</text>
      <text>Andrew sent you a picture</text>
      <text>See it in full size!</text>
      <image placement="appLogoOverride" src="A.png" />
    <image placement="inline" src="hiking.png" />
    </binding>
  </visual>
</toast>

Všimnite si, že XAML kód má tri sekcie – vizuálnu, sekciu na definovanie akcie, ktorá sa má urobiť a audio, čiže prípadný sprievodný zvuk oznámenia.

Príklad vytvorenia oznámenia

V príklade ukážeme rôzne možnosti oznámení, počnúc jednoduchou textovou správou, oznámenie, ktoré obsahuje kombináciu textu a obrázku a taktiež aj možnosť načasovania oznámenia. Vytvorte projekt prázdnej (Blank App) UWP aplikácie. Pre jednoduchosť bude impulzom k zobrazeniu oznámenia kliknutie na tlačidlo, ktoré bude jediným ovládacím prvkom v našom príklade, takže do XAML kódu doplňte:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Button Content="Pošli oznámenie"
            HorizontalAlignment="Left" Margin="185,210,0,0"
            VerticalAlignment="Top" Height="100" Width="300"     
            Click="Button_Click_1"/>
</Grid>

Do kódu pre obsluhu udalostí pridajte namespace

using Windows.UI.Notifications;
using Windows.UI.Popups;
using Windows.Data.Xml.Dom;

a obsluhu udalosti zatlačenia tlačidla, kde v prvom rade je potrebné skontrolovať, či používateľ oznámenia pre príslušnú aplikáciu povolil.

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    var notifier = ToastNotificationManager.CreateToastNotifier();
 
 // Sú oznamenia povolené?
    if (notifier.Setting != NotificationSetting.Enabled)
    {
       var dialog = new MessageDialog("Ozn8menia nie sú povolené");
       dialog.ShowAsync();
       return;
    }
 
 // výber šablóny oznámenia
    var toastXml =
    ToastNotificationManager.GetTemplateContent(ToastTemplateType.ToastText01);
    var elements = toastXml.GetElementsByTagName("text");
    elements[0].AppendChild(toastXml.CreateTextNode("Dáva sa na všeobecnú známosť,
         že táto aplikácia funguje"));
 // zobrazenie oznamenia  
    var toast = new ToastNotification(toastXml);
    notifier.Show(toast);
}

Najjednoduchší príklad notifikácie

Štýl oznámenia môžete definovať aj výberom z ôsmych preddefinovaných typov, pričom text je vo formáte XML, takže môže byť štruktúrovaný a formátovaný.

Šablóny preddefinovaných textových typov oznámení

Šablóny preddefinovaných typov oznámení – kombinácia textu a obrázku

Plánovanie zobrazenia oznámenia

Často môže byť vhodné naplánovať zobrazenie oznámenia na určitý čas, čo umožňuje vytvoriť najjednoduchší pripomienkovač. Na čo sa takýto scenár hodí? Napríklad spustíte aplikáciu typu kuchárska kniha a v recepte je stať „15 minút variť“ a vedľa textu je tlačidlo na nastavenie pripomienkovača. Ak používateľ ide podľa receptu krok po kroku, dá ingrediencie do hrnca, nastaví pripomienkovač, prepne sa na inú aplikáciu a kým sa jedlo varí prezerá si správy. O 15 minút sa mu zobrazí oznámenie, že jedlo je odvarené. V našom príklade doplníme kód, v ktorom naplánujeme zobrazenie notifikácie o pol minúty

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    var notifier = ToastNotificationManager.CreateToastNotifier();
    ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01;
    XmlDocument toastXml =
        ToastNotificationManager.GetTemplateContent(toastTemplate);
    XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
    toastTextElements[0].AppendChild(toastXml.CreateTextNode("Jedlo je hotové!"));
   var date = DateTimeOffset.Now.AddSeconds(30);
   var stn = new ScheduledToastNotification(toastXml, date);
   notifier.AddToSchedule(stn);
 }

Zdrojom správ pre oznámenia môže byť buď aplikácia alebo externá cloudová služba prostredníctvom Windows Push Notification Service (WNS)

Viac sa o návrhu a fungovaní oznámení dozviete na msdn.microsoft.com

Zobrazit Galériu

Nechajte si posielať prehľad najdôležitejších správ emailom

Mohlo by Vás zaujímať

ITPro

Linux súkromne i pracovne v2.0 (40. časť) Príkazy git

18.06.2019 14:20

Táto časť seriálu bude stručným sumárom základných príkazov CLI, pomocou ktorých naštartujeme prácu v systéme git. Pomocou tejto jednoduchej referencie sa naučíme inicializovať prácu so systémom git a ...

ITPro

Praktická kryptológia (25. časť) Hašovacie konštrukcie

18.06.2019 14:05

V prípade, že sa rozhodneme hlbšie si naštudovať základy hašovacích algoritmov MD a SHA, určite sa stretneme s pojmami ako Merklova-Damgårdova, resp. Wide-Pipe konštrukcia. Pomocou nich sa za použitia ...

ITPro

VMware NSX L2 VPN alebo Ako si ponechať IP adresu

19.06.2019 14:01

V digitálnej dobe 21. storočia čoraz viac spoločností outsourcuje svoje IT riešenia a systémy k rôznym poskytovateľom na IT trhu ako súčasť znižovania nákladov. Aj keď v poslednom čase pozorujeme znač ...

q

Žiadne komentáre

Vyhľadávanie

SWAN_062019

Najnovšie videá