2012-02-08 17 views
11

यदि उपयोगकर्ता सक्षम पुश अधिसूचनाओं को अस्वीकार करता है, तो हमें एक त्रुटि मिलेगी, didFailToRegisterForRemoteNotificationsWithError के माध्यम से। क्या किसी को पता है कि इस मामले में एनएसईआरआरआर ऑब्जेक्ट में कोड क्या होगा (इसे अलग करने के लिए, कहें, कोई कनेक्शन उपलब्ध नहीं है)?didFailToRegisterForRemoteNotificationsWithError: उपयोगकर्ता ने त्रुटि से इंकार कर दिया?

+0

आपको वास्तव में जेरेड का जवाब देना चाहिए - उसका सही जवाब है। मुझे बस अपनी कंपनी के ग्राहकों में से एक के लिए इसे फिर से सत्यापित करना पड़ा। हमारे एंटरप्राइज़ ऐप को डाउनलोड किया गया (जो उत्पादन पुश सेवाओं का उपयोग करता है), पूछे जाने पर सभी अधिसूचनाओं को अस्वीकार कर दिया गया, और ऐप को अभी भी टोकन मिला। सेटिंग में उन्हें सक्षम करना, ऐप को पुनरारंभ करना, फिर सेटिंग्स में उन्हें अक्षम करना, ऐप को पुनरारंभ करना - सभी मामलों में टोकन ठीक से लौटा दिया जाता है। –

उत्तर

19

मुझे नहीं लगता कि आपका प्रारंभिक बयान (हमेशा) सच है। यदि किसी ऐप को वैध प्रावधान प्रोफ़ाइल के साथ सही तरीके से हस्ताक्षरित किया गया है, तो registerForRemoteNotificationTypes: पर कॉल करने से सेटिंग एप में उपयोगकर्ता के अधिसूचना विकल्पों के बावजूद application:didRegisterForRemoteNotificationsWithDeviceToken: होगा। मेरे अनुभव से, मैंने केवल application:didFailToRegisterForRemoteNotificationsWithError: को देखा है जिसे एक अनुचित हस्ताक्षरित ऐप के कारण कहा गया था। प्रश्न में त्रुटि का उल्लेख है "आवेदन के लिए कोई वैध एपीएस-पर्यावरण एंटाइटेलमेंट नहीं मिला"।

18

हालांकि यह प्रश्न पुराना है, और @ जेरेड के उत्तर के अधिकांश से सहमत हैं, मैंने किसी भी अद्यतन उत्तर को पोस्ट करने का विचार किया है।

धागे में मुख्य प्रश्न का उत्तर NO है।

आवेदन: didFailToRegisterForRemoteNotificationsWithError: को गलत प्रावधान प्रोफ़ाइल के साथ हस्ताक्षर किए जाने पर कॉल किया जाता है।

इसके अलावा,

आवेदन: didRegisterForRemoteNotificationsWithDeviceToken: कहा जाता हो जाता है केवल जब उपयोगकर्ता अपने अनुप्रयोग के लिए (सेटिंग ऐप्स में) कम से कम बिल्ला, बैनर/चेतावनी या अधिसूचना केंद्र में ध्वनि सेटिंग में से एक सक्षम बनाता है।

वहाँ जहां आईओएस इन तरीकों

  • दोनों में से किसी को फोन नहीं होगा उपयोगकर्ता अनुप्रयोग के लिए अनुमतियां मिल करने के लिए पुश सूचनाएं भेजने के लिए मना कर जब परिदृश्य दिए गए हैं
  • जब कोई नेटवर्क कनेक्टिविटी और उपयोगकर्ता दी गई अनुमतियों को धक्का भेजने के लिए सूचनाएं।
  • जब उपयोगकर्ता सेटिंग ऐप में अधिसूचना केंद्र से ऐप के लिए पुश सूचनाएं अक्षम करता है।
+1

यह एक अच्छा लेख है जो एक भाग को छोड़कर है: "एपीएनएस के लिए अलग वातावरण हैं: ** सैंडबॉक्स (विकास और विज्ञापन निर्माण के लिए) **, और उत्पादन। प्रत्येक का अपना प्रमाणपत्र है, और प्रावधान प्रक्रिया को दोहराया जाना चाहिए दो।"। विज्ञापन-निर्माण वास्तव में उत्पादन एपीएनएस को हिट करता है: "ऑपरेटिंग सिस्टम विकास के निर्माण के लिए सैंडबॉक्स पर्यावरण के साथ लगातार कनेक्शन स्थापित करता है; विज्ञापन और वितरण निर्माण पर्यावरण से जुड़ता है।" https://developer.apple.com/library/ios/technotes/tn2265/_index से।एचटीएमएल # // apple_ref/doc/uid/DTS40010376-CH1-TNTAG42 –

+0

सर्वोत्तम प्रथाओं के रूप में वर्णित आलेख के साथ उत्तर को अपडेट करना बहुत अच्छा होगा, क्योंकि अब यह अब उपलब्ध नहीं है। – leolobato

+0

@leolobato के साथ सहमत हैं, लेख का लिंक अब मान्य नहीं है। – Zorayr

1

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

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