7

पुश अधिसूचनाओं के लिए हम जीसीएम (Google क्लाउड मैसेजिंग) का उपयोग कर रहे हैं। जब हम प्ले-सेवाओं का इस्तेमाल करते थे तो यह ठीक काम कर रहा था: 8.3.0। हम अपने स्वयं के रिसीवर के साथ पुश नोटिफिकेशन को संसाधित करते हैं। com.google.android.gms:play-services:8.4.0 को अपग्रेड करने के बाद मेरे myGcmListenerService पर नहीं आना, इसके बजाय इसे अधिसूचना बार में दिखाया गया है। Bundle[{gcm.notification.e=1, google.c.a.ts=234343426, gcm.notification.badge=1, gcm.notification.sound=default, gcm.notification.sound2=default, gcm.notification.body=John M @ Cords, Wires And Cable Ftu, gcm.notification.data={"name":"new_chat_message","message_id":490666,"channel_id":5366}, google.c.a.e=1, collapse_key=com.domain.app.debug}]Google Play सेवाओं को अपडेट करने के बाद 8.4.0 पुश अधिसूचनाएं स्वयं प्रदर्शित होती हैं

8.4.0 के साथ धक्का इस तरह आ रही:: इसके अलावा यह 8.3.0 के साथ GcmAnalytics: Error while parsing timestamp in GCM event.

लॉग में इस त्रुटि से पता चलता है कि हम इस तरह धक्का प्राप्त Bundle[{notification=Bundle[{sound2=default, e=1, body=John M @ Cords, Wires And Cable Rrr, data={"name":"new_chat_message","message_id":490641,"channel_id":5366}, badge=1, sound=default}], collapse_key=com.domain.app.debug}]

+0

क्या आपने इन 2 संस्करणों के बीच किसी भी ब्रेकिंग बदलाव के लिए प्रलेखन पर जांच की है? – saljuama

+0

दस्तावेज़ीकरण से: 'अधिसूचना - जीसीएम स्वचालित रूप से क्लाइंट ऐप की ओर से उपयोगकर्ता डिवाइस को समाप्त करने के लिए संदेश प्रदर्शित करता है।' और 'डेटा - क्लाइंट ऐप डेटा संदेशों को संसाधित करने के लिए ज़िम्मेदार है। '। समस्या यह है कि एंड्रॉइड के बगल में हमें अपने आईओएस क्लाइंट का समर्थन करने की भी आवश्यकता है, इसलिए हमें आईओएस (सिस्टम द्वारा पुश को संभालने के लिए) और एंड्रॉइड के लिए डेटा (स्वयं द्वारा धक्का संभालने के लिए) के लिए उपयोग की जाने वाली अधिसूचना की आवश्यकता है। –

+0

मैं वही चीज़ देख रहा हूं जब मैं 8.3.0 से 8.4.0 तक अपग्रेड करता हूं, और मैं कभी भी अधिसूचना फ़ील्ड का उपयोग नहीं करता हूं। ऐसा लगता है कि धूम्रपान बंदूक अधिसूचना में "ई = 1" फ़ील्ड है, क्योंकि इससे मेरे 8.4.0 बंडलों में अधिसूचना बंडल होता है जो मुझे नहीं लगता कि उनके पास होना चाहिए, और मुझे लगता है कि यह चीजों को उत्पन्न कर रहा है घबराओ। समस्या यह है कि, मैं अपने जीवन के लिए यह नहीं समझ सकता कि "ई = 1" का अर्थ क्या है, और न ही इससे कैसे छुटकारा पाना है, जब से यह अस्तित्व में है, जीसीएम बंडल मेरे कोड पर कभी नहीं आते हैं जब मेरा ऐप अग्रभूमि में नहीं है। – Codiak

उत्तर

4

अपने सर्वर में सिर्फ भेज ezeronotification फ़ील्ड के अंदर क्षेत्र।

{ 
    "to": "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...", 
    "content_available": true, 
    "notification": { 
     "e": 0 
    }, 
    "data": { 
     "key": "value" 
    } 
} 

और फिर एंड्रॉयड में बंडल हो जाएगा:

Bundle[{gcm.notification.e=0, key=value, ...}] 

तो अब होगा कि आपके ऐप पृष्ठभूमि में है यह अपने आप में अधिसूचना नहीं दिखाएगा और अपने GcmListenerService में बंडल प्राप्त होगा।

लेकिन यदि आपके पास अधिसूचना और डेटा पेलोड दोनों हैं और आपका ऐप पृष्ठभूमि में है, तो यह here वर्णित अनुसार स्वयं ही अधिसूचना दिखाएगा। दोनों अधिसूचना और डेटा पेलोड के साथ

हाइब्रिड संदेशों

अनुप्रयोग व्यवहार जब संदेश है कि दोनों अधिसूचना और डेटा पेलोड शामिल प्राप्त लगाने देती है पृष्ठभूमि में है, या पर निर्भर करता है अग्रभूमि -essentially, या यह रसीद के समय सक्रिय नहीं है।

  • जब पृष्ठभूमि में, क्षुधा अधिसूचना ट्रे में अधिसूचना पेलोड प्राप्त करते हैं, और केवल डेटा पेलोड संभाल जब उपयोगकर्ता अधिसूचना पर टैप करता।

  • जब अग्रभूमि में, आपके ऐप को उपलब्ध दोनों पेलोड के साथ एक बंडल प्राप्त होता है।

+0

कूल, बहुत अच्छा लगता है! एक अनियंत्रित सुविधा के रूप में, हालांकि, मैं अभी भी उत्पादन में इसका उपयोग करने के लिए थोड़ा अनिच्छुक हूं। यदि भविष्य में रिलीज में किसी बिंदु पर, यह * क्लाइंट पर एक अधिसूचना उत्पन्न करता है (जैसा कि आपके पास JSON में किसी भी प्रकार की अधिसूचना बंडल है, तो दस्तावेज से अपेक्षा की जा सकती है), तो आपके पास अपने ऐप के कुछ संस्करण हो सकते हैं इस हैक और आपके ऐप के कुछ संस्करणों की आवश्यकता है जिसके लिए आपको * यह हैक नहीं है। मेरे पास इस मुद्दे पर Google के साथ एक खुली बग है और मैं किसी तरह का उत्तर पाने की कोशिश कर रहा हूं, भले ही यह भविष्य के सबूत फिक्स के रूप में इसे वैध बना रहा हो। – Codiak

+0

यह मेरे लिए काम नहीं करता है। एक कामकाज एंड्रॉइड उपकरणों के लिए 'अधिसूचना' नोड को हटा रहा है। http://stackoverflow.com/a/38741956/6371459 – pedrofb

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