2015-06-11 14 views
6

द्वारा स्वचालित रूप से प्रदर्शित होने पर एंड्रॉइड में अधिसूचना की टैप को कैसे संभालें, मुझे जीसीएम के नवीनतम अपडेट के साथ एंड्रॉइड में 2 मुद्दों का सामना करना पड़ा। जीसीएम के अनुसार, यदि पेलोड में 'अधिसूचना' विशेषता है तो यह स्वचालित रूप से ट्रे में अधिसूचना प्रदर्शित करेगा। लेकिन उन्होंने इस अधिसूचना के लिए टैप ईवेंट को संभालने का तरीका नहीं बताया है। यदि पेलोड में केवल डेटा विशेषता है, तो GCMListenerService का 'onMessageReceived' लागू किया गया है। लेकिन अगर पेलोड में अधिसूचना और डेटा विशेषताओं दोनों शामिल हैं, तो विधि लागू नहीं की जाती है। किसी भी विचार को हल करने के लिए कैसे? मुझे यह देखने के लिए आईओएस भी देखना है कि यह कैसे व्यवहार करता है।जीसीएम

+1

आप Parse.com इस्तेमाल करने की कोशिश की थी? यह एंड्रॉइड और आईओएस के लिए बहुत सरल है। लेकिन मुझे लगता है कि आप केवल जीसीएम का उपयोग करना चाहते हैं ... –

उत्तर

11

आपको अधिसूचना पेलोड में क्लिक_एक्शन सेट करने की आवश्यकता है। फिर जब उपयोगकर्ता अधिसूचना पर खुलता/क्लिक करता है, तो उस ऐप के साथ घोषित आपके ऐप में एक गतिविधि लॉन्च की जाएगी।

जैसे सेट click_action: OPEN_ACTIVITY_1, और इच्छित गतिविधि के लिए निम्न लक्ष्य फ़िल्टर जोड़ें:

<intent-filter> 
    <action android:name="OPEN_ACTIVITY_1" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 

तो फिर तुम गतिविधि में संदेश से डेटा निकाल सकते हैं, getIntent() का उपयोग कर और फिर को देखकर इरादा अतिरिक्त।

प्रविष्टि यहाँ देखें: https://developers.google.com/cloud-messaging/server-ref#notification-payload-support

+0

क्या आपको लगता है कि जीसीएम लिस्टनर सेवा अब और उपयोगी नहीं है क्योंकि इसे पेलोड में अधिसूचना विशेषता मौजूद होने पर भी बुलाया नहीं जाता है? – Winster

+0

एक संदेश भेजने का कोई तरीका नहीं है जो अधिसूचना दिखाएगा, और GcmListenerService का आह्वान करेगा। आप दो संदेश भेजकर, अधिसूचना पेलोड के साथ एक और एक ही डेटा पेलोड के साथ एक ही प्रभाव प्राप्त कर सकते हैं। – morepork

+0

क्या आपको उस इरादे को फ़िल्टर करने के इरादे को निर्दिष्ट करने की आवश्यकता नहीं है जिसे आपने इरादा-फ़िल्टर अंदर रखा है? मैंने अपने विचारों में से एक के अंदर उस इरादे-फ़िल्टर को रखा और कुछ भी नहीं होता जब मैं अधिसूचना पर क्लिक करता हूं जिसमें "क्लिक_एक्शन" है: जेसन ऑब्जेक्ट में अधिसूचना कुंजी में "OPEN_ACTIVITY_1"। मैं एंड्रॉइड देव के लिए नया हूं इसलिए कोई सुझाव मदद करेगा। – bxiong

0

आप notification परम साथ धक्का भेजा है, तो आप आप अधिसूचना संभाल, data विकल्प के साथ धक्का भेज चाहते हैं onMessageReceived

पर से संभाल नहीं कर सकते हैं, अब आप जीसीएम और onMessageReceived के साथ संभाल सकते हैं।

नोटिस: notifications कुंजी के साथ आईओएस हैंडल नोटिफिकेशन।

एंड्रॉइड data कुंजी के लिए notification कुंजी के साथ आईओएस के लिए पुश भेजें।

एंड्रॉइड के लिए;

{"data":{"message":"hey"}},registration_ids":["device token"]

iOS के लिए:

{"notification":{"title":"Hey title", "body":" Hey body"},"to":"device token"}

+0

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

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