2014-05-06 5 views
11

Ich möchte eine universelle App für Windows Phone 8.1 entwickeln, die eine lokale "Benachrichtigung" enthält.Lokale Toastbenachrichtigung anzeigen

Was ich tun möchte, ist es, alle Meldungen an den Benutzer (Fehler, Informationen, Warnungen) in einem Knick von Toast-Steuerelement zu zeigen. Alles wird lokal erledigt, ohne das Standardbenachrichtigungssystem durchlaufen zu müssen. Es gibt mehrere Systeme, das auf Windows Phone arbeitet 8:

Aber es ist nicht möglich, diese Bibliotheken auf Windows Phone 8.1 Projekt einzubeziehen.

Kennt jemand eine andere Methode, um "lokale" Toasts anzuzeigen?

Antwort

7

Sie können eine lokale Benachrichtigung verwenden, die bei der Ausführung Ihrer App angezeigt wird.

ToastTemplateType toastTemplateXml = ToastTemplateType.ToastImageAndText01; 
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplateXml); 

Sie werden dann die XML zurückgegeben von GetTemplateContent

<toast> 
    <visual> 
     <binding template="ToastImageAndText01"> 
      <image id="img" src=""/> 
      <text id="txt"></text> 
     </binding> 
    </visual> 
</toast> 

Versorgen Sie den Inhalt Ihrer Toast in der XML-DOM bevölkern müssen. Das Bild ist nur für Windows 8.1 relevant.

seinen Startparameter angeben

((XmlElement)toastNode).SetAttribute("launch", "{\"type\":\"toast\",\"param1\":\"1\",\"param2\":\"2\"}"); 

das Objekt Toast erstellen:

ToastNotification toast = new ToastNotification(toastXml); 

und schließlich den Toast anzuzeigen.

ToastNotificationManager.CreateToastNotifier().Show(toast); 

Auch, wenn Sie einen Dritten Steuerung verwenden möchten den Toast angezeigt werden, dann könnten Sie ein Windows Phone 8.1 Silverlight-Anwendung zu schreiben betrachten.

+0

Gute Antwort, es hat mir sehr geholfen. Ich fülle die folgende Antwort aus. –

25

Mit Hilfe der @msimons Antwort und der folgenden URL: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh868254.aspx ist es mir gelungen, meine Benachrichtigungen anzuzeigen.

Für diejenigen, die es brauchen, hier ist meine letzte Methode:

private void ShowToastNotification(String message) 
    { 
     ToastTemplateType toastTemplate = ToastTemplateType.ToastImageAndText01; 
     XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate); 

     // Set Text 
     XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text"); 
     toastTextElements[0].AppendChild(toastXml.CreateTextNode(message)); 

     // Set image 
     // Images must be less than 200 KB in size and smaller than 1024 x 1024 pixels. 
     XmlNodeList toastImageAttributes = toastXml.GetElementsByTagName("image"); 
     ((XmlElement)toastImageAttributes[0]).SetAttribute("src", "ms-appx:///Images/logo-80px-80px.png"); 
     ((XmlElement)toastImageAttributes[0]).SetAttribute("alt", "logo"); 

     // toast duration 
     IXmlNode toastNode = toastXml.SelectSingleNode("/toast"); 
     ((XmlElement)toastNode).SetAttribute("duration", "short"); 

     // toast navigation 
     var toastNavigationUriString = "#/MainPage.xaml?param1=12345"; 
     var toastElement = ((XmlElement)toastXml.SelectSingleNode("/toast")); 
     toastElement.SetAttribute("launch", toastNavigationUriString); 

     // Create the toast notification based on the XML content you've specified. 
     ToastNotification toast = new ToastNotification(toastXml); 

     // Send your toast notification. 
     ToastNotificationManager.CreateToastNotifier().Show(toast); 
    } 

I 8.1 auf einem universellen Anwendung Windows Phone getestet.

Und nicht vergessen „Package.appxmanifest“ zu bearbeiten und aktivieren Benachrichtigungen. Die Möglichkeit, Toast-Benachrichtigungen zu erstellen, wird in der Datei package.appxmanifest Ihrer App festgelegt. Wenn Sie den Microsoft Visual Studio-Manifesteditor verwenden, setzen Sie einfach die Option Toast-fähig im Abschnitt Benachrichtigung der Registerkarte Anwendung auf "Ja".

+0

Mein Bild wird nicht angezeigt, wenn die Notation ms-appx: ///Images/img.png verwendet wird. Irgendeine Idee? Meine Build-Eigenschaften lauten wie folgt: Inhalt, Immer kopieren. – markwilde

+0

Ist Ihr Bild im Verzeichnis "Bilder"? Eine Regel mit Bildern auf Toast ist "Bilder müssen weniger als 200 KB groß und kleiner als 1024 x 1024 Pixel sein" (Quellen: http://msdn.microsoft.com/en-us/library/windows/apps/xaml /hh868254.aspx). Ich weiß nicht, was passiert, wenn dein Bild größer ist. –

+0

Ich habe ein sehr kleines Bild (80:80), also nur ein paar Bytes groß. Auf meiner bereitgestellten App wird das Geschäftssymbol und nicht das benutzerdefinierte Symbol angezeigt. – markwilde

Verwandte Themen