6

इस मंच के अनुसार Does the APNS device token ever change, once created? डिवाइस टोकन की समयसीमा समाप्त हो सकती है या एपीएनएस डिवाइस टोकन बदल सकता है। मेरा सवाल यह है कि क्या एपीएनएस अधिसूचना के लिए समाप्त हो चुके टोकन का उपयोग करेगा यदि सर्वर एप्पल को इस कालबाह्य टोकन भेजता है? क्या एपीएनएस किसी अन्य डिवाइस के लिए इस कालबाह्य टोकन का उपयोग कर सकता है?क्या हुआ अगर कोई एपीएनएस डिवाइस टोकन समाप्त हो गया?

उत्तर

10

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

आपका ऐप और आपका सर्वर डिवाइस टोकन की समाप्ति को संभालने में सक्षम होना चाहिए चाहे आपके प्रश्न का उत्तर क्या हो।

  1. हमेशा registerForRemoteNotificationTypes फोन अपने ऐप शुरू की है, और अगर यह पिछले डिवाइस से अलग है सर्वर से डिवाइस टोकन भेजने टोकन अपने अनुप्रयोग है कि डिवाइस पर मिला है।

  2. अपने ऐप का उपयोग करने वाले प्रत्येक डिवाइस के लिए अपने सर्वर में एक और अद्वितीय पहचानकर्ता असाइन करें। ऐप को डिवाइस टोकन के साथ अपने सर्वर पर पहचानकर्ता भेज दें। इस तरह, यदि डिवाइस टोकन बदलता है, तो आपके सर्वर को पता चलेगा कि यह मौजूदा डिवाइस के लिए एक नया डिवाइस टोकन है, न कि एक नया डिवाइस जहां आपका ऐप इंस्टॉल किया गया था।

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

  4. यदि आप पुराने डिवाइस टोकन को अधिसूचना भेजते हैं, यदि यह काम करता है, तो सब अच्छा है। यदि ऐसा नहीं होता है, तो आपको या तो एक अवैध टोकन त्रुटि प्रतिक्रिया मिल जाएगी या आपको फीडबैक सेवा में वह डिवाइस टोकन मिलेगा। उन दो मामलों में से किसी एक में, आपको उस टोकन पर अधिसूचनाएं भेजना बंद कर देना चाहिए।

  5. मुझे लगता है कि एपीएनएस किसी अन्य डिवाइस के लिए एक कालबाह्य टोकन का पुन: उपयोग नहीं करेगा, लेकिन यदि ऐसा होता है, तो आपका सर्वर # 2 में सुझाए गए अद्वितीय पहचानकर्ता का उपयोग कर इसे पहचान सकता है। उस स्थिति में, सुनिश्चित करें कि आपका सर्वर केवल डिवाइस को टोकन असाइन करता है अन्य डिवाइस पर।

+4

समस्या यह है कि यह अद्वितीय पहचानकर्ता कैसे बनाए रखा? यदि उपयोगकर्ता ऐप इंस्टॉल/अनइंस्टॉल करता है तो यह अद्वितीय पहचानकर्ता खो जाएगा। यदि ओएस को यह अद्वितीय पहचानकर्ता अपडेट किया गया है (और डिवाइस टोकन, उपरोक्त लिंक पर एसीसी) खो जाएगा। क्या डिवाइस में कोई अनूठी कुंजी है जो इस डिवाइस के लिए कभी भी बदलेगी और अनूठी रहेगी? – user960567

+0

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

+0

एंड्रॉइड में यह कैसे करें? – user960567

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