2015-09-21 7 views
10

नहीं भेज रहा है इसलिए मैंने Google क्लाउड मैसेजिंग के साथ एक बहुत ही अजीब समस्या में भाग लिया है। मेरी समस्या यह है कि यह डिवाइस को सफलतापूर्वक पंजीकृत कर रहा है, और जब कोई संदेश भेजा जाता है तो मुझे Google से एक सफल संदेश मिलता है। लेकिन उपकरणों को कभी भी कोई संदेश नहीं मिलता है।Google क्लाउड मैसेजिंग सफलता संदेश दिखा रहा है लेकिन आईओएस

संदेश मैं GCM से वापस मिल है:

"result": "Push notification sent successfully: {\"multicast_id\":6008387530769664000,\"success\":1,\"failure\":0,\"canonical_ids\":0,\"results\":[{\"message_id\":\"0:1442824842607522%73fc535e73fc535e\"}]}" 

चीजों को और भी अधिक भ्रमित करने के लिए, मेरी कार्यान्वयन के बारे में 2 सप्ताह पहले काम कर रहा था और मैं तारीख के लिए कुछ भी नहीं बदला है। ऐप का एंड्रॉइड संस्करण बिना किसी समस्या के संदेश प्राप्त कर रहा है, यह केवल आईओएस कार्यान्वयन है जो काम नहीं कर रहा है।

किसी भी मदद की बहुत सराहना की जाएगी!

धन्यवाद!

+1

क्या आप अपना पूरा HTTP अनुरोध शीर्षलेख और शरीर पेस्ट कर सकते हैं? आप अपने संदेश के लिए [उच्च प्राथमिकता] (https://developers.google.com/cloud-messaging/concept-options?hl=hi#setting-the-priority-of-a-message) सेट करने का भी प्रयास कर सकते हैं, या अपने संदेश के [lifespan] (https://developers.google.com/cloud-messaging/concept-options?hl=hi#ttl) को बदलें। – ztan

उत्तर

12

तो आखिरकार मैंने अपने सिर से आखिरी शेष बालों को खींचने के बाद इस मुद्दे को हल किया।

यह पता चला है कि डिवाइस संदेश प्राप्त कर रहे हैं लेकिन जीसीएम डिफ़ॉल्ट रूप से सबसे कम प्राथमिकता को प्राथमिकता देता है। इसका मतलब है कि डिवाइस अधिसूचना प्राप्त करता है लेकिन इसे कभी प्रदर्शित नहीं करता है। इस प्राथमिकता को पृष्ठभूमि में ऐप उठाने के लिए चुप सूचनाओं के लिए उपयोग किया जाता है। क्योंकि मैं सांत्वना कहावत में संदेश प्राप्त कर रखा है कि मैं इस खोज की:

निम्न प्राथमिकता पुश: [com.test.app] - पृष्ठभूमि समर्थित नहीं रिफ्रेश

प्राथमिकता वह 1 से 10 एक मूल्य है इसलिए मैंने प्राथमिकता को 10 पर सेट किया और तुरंत डिवाइस पर संदेश मिला। मेरे GCM पोस्ट अनुरोध शरीर अब इस तरह दिखता है:

{ 
    "to": "GCM token here", 
    "notification": { 
    "sound": "default", 
    "badge": "2", 
    "title": "default", 
    "body": "Test Push!", 
    }, 
    "priority" : 10, 
} 

मैं सच में आशा है कि यह दूसरों में मदद करता है के रूप में मैं एक सप्ताह बिताया है इस बारे में मेरे बाल बाहर खींच रहा है।

(ノ ಠ 益 ಠ) ノ

संपादित करें:

आप "प्राथमिकता" के लिए "उच्च" सेट कर सकते हैं और कहा कि वास्तव में यह करने के समान ही काम करता है के लिए "10" (प्राथमिकता है एक मान 0 और 10 के बीच गूगल आईओएस

के लिए संख्या के लिए पाठ coverts
+1

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

+0

ओह आदमी आप महान हैं :) – RezaRahmati

+0

आप सही हैं। तुमने मुझे अपने बालों को खींचने से बचाया ;-)। हालांकि मैं ऐसा करना शुरू कर रहा था – Arash

1

"प्राथमिकता" जोड़ने के बजाय: "content_available":: 10, आप निम्न पंक्ति जोड़ना चाहिए, सच

एपीएनएस सर्वर (आईओएस) में, content_avaialble 1 में बदल जाता है जो पृष्ठभूमि में पुश अधिसूचना का नेतृत्व करता है। और "प्राथमिकता" जोड़ना: 10, अधिक आईफोन बैटरी निकालेगा। मेरे मामले में मेरे पास प्राथमिकता से संबंधित कुछ भी नहीं है, लेकिन यह अभी भी काम करता है।

+0

यह निराशा के दिनों के बाद मेरे लिए काम करता है। धन्यवाद! – BThompson

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