2014-10-28 5 views
13

एप्लिकेशन बंद होने पर मेरा एप्लिकेशन पुश नोटिफिकेशन अच्छी तरह से प्राप्त करता है। लेकिन जब ऐप चल रहा है, मुझे कुछ भी नहीं मिला। यह वही कोड है जिसे मैंने पिछले ऐप्स में किसी भी समस्या के साथ उपयोग किया है, वे WindowsPhone8 पर थे और नए ऐप्स WindowsPhone8.1 डिवाइस पर चल रहे हैं।ऐप खुला होने पर PUSH नहीं दिखा रहा है

जब मैंने मूल ऐप बनाया था तो मैंने Push Tutorial का उपयोग किया था। मेरे पास वह लाइन है जो कहती है कि यदि आप ऐप खुले हैं तो नोटिफिकेशन प्राप्त करना चाहते हैं।

यदि 8.1 अपडेट ने पुश अधिसूचनाओं के लिए कुछ किया है जो जानना अच्छा होगा। और कुछ भी सराहना की जाएगी।

HttpNotificationChannel pushChannel; 
string channelName = "PushChannel"; 
pushChannel = HttpNotificationChannel.Find(channelName); 
//Push Notifications 
if (pushChannel == null) 

{ 
    pushChannel = new HttpNotificationChannel(channelName); 

    //// Register for all the events before attempting to open the channel. 
    pushChannel.ChannelUriUpdated += 
     new EventHandler<NotificationChannelUriEventArgs>(
     PushChannel_ChannelUriUpdated); 
    pushChannel.ErrorOccurred += 
     new EventHandler<NotificationChannelErrorEventArgs>(
     PushChannel_ErrorOccurred); 

    // Register for this notification only if you need to receive 
    // the notifications while your application is running. 
    pushChannel.ShellToastNotificationReceived += 
     new EventHandler<NotificationEventArgs>(
     PushChannel_ShellToastNotificationReceived); 

    pushChannel.Open(); 

    // Bind this new channel for toast events. 
    pushChannel.BindToShellToast(); 

} 
else... 



void PushChannel_ShellToastNotificationReceived(object sender, 
                 NotificationEventArgs e) 

{ 
    string relativeUri = string.Empty; 

    // Parse out the information that was part of the message. 
    foreach (string key in e.Collection.Keys) 

    { 
     if (string.Compare(
     key, 
     "wp:Param", 
     System.Globalization.CultureInfo.InvariantCulture, 
     System.Globalization.CompareOptions.IgnoreCase) == 0) 

     { 
      relativeUri = e.Collection[key]; 
     } 


    } 
} 
+0

कृपया कुछ कोड दिखाएं। क्या आप एमपीएनएस या डब्ल्यूएनएस का उपयोग कर रहे हैं? – Fred

+0

कोड जोड़ा गया। अन्यथा ईवेंट हैंडलर को पहले से मौजूद पुशचैनल में जोड़ना है। – Seige

+0

संक्षेप में, ShellToastNotificationReceived फायरिंग नहीं है। यही है ना – fillobotto

उत्तर

2

रोब कैपलन:

Toasts प्रदर्शित करने के लिए जब एप्लिकेशन को अग्रभूमि में चलने की उम्मीद नहीं कर रहे हैं। यदि आवश्यक हो तो ऐप से अपना यूआई दिखाने की उम्मीद है (आपका स्निपेट कुछ भी नहीं दिखाता है)। यही वह है जो शेलटॉस्ट नोटिफिकेशन रिसीव इवेंट के लिए है: जब टोस्ट की बजाय टोस्ट अधिसूचना आती है तो यह आग लगती है। क्या आप पुष्टि कर सकते हैं कि जब आप टोस्ट की अपेक्षा करते हैं तो ShellToastNotificationReceived उठाया नहीं जाता है? यह होना चाहिए। क्या आप पुष्टि कर सकते हैं कि यह डीबगर में पंजीकृत और प्राप्त (या नहीं) है? msdn.microsoft.com/en-us/library/windows/apps/...

मेरे देखें:

से पहले 8.1 अद्यतन, एक खुला एप्लिकेशन एक धक्का मिला जब, टोस्ट अभी भी दिखा सकती है। मैंने अभी कुछ परीक्षण किया है, और निश्चित रूप से पर्याप्त है, "PushChannel_ShellToastNotificationReceived" ईवेंट अभी भी निकाल दिया जा रहा है, लेकिन टोस्ट नहीं दिख रहा है। मुझे लगता है कि इसका मतलब है कि मुझे इसे अलग करने की ज़रूरत है। यदि आप इसे उत्तर में बदलना चाहते हैं, तो मैं इसे उपहार प्रदान कर सकता हूं।

संबंधित मुद्दे