2013-08-12 4 views
7

मैं एक ऐसा iOS ऐप्लिकेशन लिख रहा हूँ और जब ऑपरेटिंग सिस्टम इस तरह का बैनर अधिसूचना दिखाने का निर्णय लेता मैं मेरे ऐप की गति सामग्री को रोकना चाहते:आईओएस में बैनर अधिसूचना के बारे में मुझे कैसे अधिसूचित किया जा सकता है?

Banner Notification

वहाँ एक प्रणाली NSNotification है कि मैं क्या पर्यवेक्षक या एक विधि जिसे बुलाया जा सकता है जिसे मैं प्रतिक्रिया दे सकता हूं? मैंने applicationWillResignActive की कोशिश की है, लेकिन इस मामले में इसे नहीं कहा जाता है।

+1

सस्ता शॉट: क्या खिड़की का फ्रेम या सीमा बदलती है? यदि हां, तो क्या आप ऐप विंडो की सीमाओं पर केवीओ आज़मा सकते हैं? – Moshe

+0

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

+1

@ कोडाफ़ी- मेरा अनुमान है कि अधिसूचना * आपकी * विंडो में नहीं है और पूरी तरह से आपके ऐप के दृश्य पदानुक्रम के बाहर है। – BergQuester

उत्तर

2

मैंने आज सुबह एक स्टैब लिया, और मैं कहने के इच्छुक हूं कि इसके लिए कोई सार्वजनिक एपीआई नहीं है।

मैंने here को उल्लिखित कोड का उपयोग करने का प्रयास किया, और किसी भी सूचना को नहीं पकड़ा। फिर, मैं यह देखने के लिए "परीक्षण" का एक गुच्छा चला गया कि मुझे कुछ मिल सकता है या नहीं।

परीक्षण करने के लिए, मैंने अनुप्रयोगों की एक जोड़ी बनाई, one to schedule notifications (GitHub link), और one to try and "catch" them (GitHub link)। मेरे प्रेषक ऐप में, मैं हर एन सेकंड में एन नोटिफिकेशन भेज सकता हूं। मैंने कुछ मनमाने ढंग से उच्च मूल्य उठाया और उन्हें भेजा।

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

मैंने निजी ढांचे तक पहुंचने के मार्ग को नीचे जाना शुरू कर दिया, लेकिन फैसला किया कि यह प्रयास के लायक नहीं है।

मैंने उपकरण खोले हैं और विचारों के पारदर्शिता स्तर को देखा है। (क्या पदानुक्रम में सभी विचारों को अपारदर्शी होने के लिए मजबूर करना संभव है, और उसके बाद बैनर कुछ अवरुद्ध कर रहा है या नहीं? शायद यह "अवरुद्ध" नहीं है यदि यह पारदर्शी है?)

मैंने भी लेने का प्रयास किया है एक स्क्रीनशॉट, और स्क्रीन के शीर्ष क्षेत्र में रंगों की जांच करें, लेकिन यह काम नहीं करेगा क्योंकि आपको संदर्भ में एक दृश्य पारित करने की आवश्यकता है। यहां तक ​​कि अगर यह काम करेगा, यह विशेष रूप से प्रदर्शन नहीं होगा।

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

सच यह है कि अधिसूचना बैनर वास्तव में आपके एप्लिकेशन को निष्क्रिय होने का कारण नहीं बनाते हैं, इसलिए मुझे यकीन नहीं है कि यह व्यवहार गलत है। यदि यह सुविधा है, तो एक बग फ़ाइल करें। DeviceWillShowNotificationNotification का अनुरोध करने के बारे में कैसे?

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

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