2014-05-06 17 views
11

Tôi muốn phát triển một ứng dụng toàn cầu cho Windows Phone 8.1 có chứa "Thông báo" cục bộ.Hiển thị thông báo bánh mì nướng địa phương

Điều tôi muốn làm là hiển thị tất cả tin nhắn cho người dùng (lỗi, thông tin, cảnh báo) trong giới hạn kiểm soát bánh mì nướng. Mọi thứ được thực hiện cục bộ mà không phải trải qua hệ thống thông báo tiêu chuẩn. Có rất nhiều hệ thống hoạt động trên Windows Phone 8:

Nhưng nó không thể bao gồm các thư viện trên dự án windows phone 8.1.

Có ai biết phương pháp khác để hiển thị bánh mì nướng "địa phương" không?

Trả lời

7

Bạn có thể sử dụng thông báo cục bộ xuất hiện khi ứng dụng của bạn đang chạy.

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

Sau đó bạn sẽ cần phải cư XML trả về bởi GetTemplateContent

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

Cung cấp nội dung của bánh mì nướng của bạn trong DOM XML. Hình ảnh chỉ phù hợp với Windows 8.1.

Xác định đó là thông số phóng

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

Tạo đối tượng bánh mì nướng:

ToastNotification toast = new ToastNotification(toastXml); 

và cuối cùng là hiển thị các bánh mì nướng.

ToastNotificationManager.CreateToastNotifier().Show(toast); 

Ngoài ra, nếu bạn muốn sử dụng điều khiển bên thứ ba để hiển thị bánh mì nướng, bạn có thể xem xét viết ứng dụng Windows Phone 8.1 Silverlight.

+0

Câu trả lời hay, nó đã giúp tôi rất nhiều. Tôi điền vào câu trả lời sau đây. –

25

Với sự trợ giúp của phản hồi @msimons và url sau: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh868254.aspx Tôi thành công để hiển thị thông báo của mình.

Đối với những người cần đến nó, đây là phương pháp cuối cùng của tôi:

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); 
    } 

tôi thử nghiệm trên một cửa sổ ứng dụng phổ biến điện thoại 8.1.

Và đừng quên chỉnh sửa "Package.appxmanifest" và kích hoạt thông báo. Khả năng tăng thông báo bánh mì nướng được khai báo trong tệp package.appxmanifest của ứng dụng. Nếu bạn sử dụng trình soạn thảo kê khai Microsoft Visual Studio, chỉ cần đặt tùy chọn Toast có khả năng thành "Có" trong phần Thông báo của tab Ứng dụng.

+0

Hình ảnh của tôi không hiển thị khi sử dụng ký hiệu ms-appx: ///Images/img.png. Bất kỳ ý tưởng? Thuộc tính xây dựng của tôi là: Nội dung, Sao chép Luôn. – markwilde

+0

Ảnh của bạn có nằm trong thư mục "Hình ảnh" không? Một quy tắc có hình ảnh trên bánh mì nướng là "Hình ảnh phải có kích thước nhỏ hơn 200 KB và nhỏ hơn 1024 x 1024 pixel" (nguồn: http://msdn.microsoft.com/en-us/library/windows/apps/xaml /hh868254.aspx). Không biết điều gì xảy ra nếu hình ảnh của bạn to hơn. –

+0

Tôi có một hình ảnh rất nhỏ (80:80), vì vậy chỉ có kích thước một vài byte. Trên ứng dụng được triển khai của tôi, nó đang hiển thị biểu tượng cửa hàng chứ không phải biểu tượng tùy chỉnh mà tôi đã cung cấp. – markwilde

Các vấn đề liên quan