2013-08-29 3 views
40

आईओएस 7 से शुरू होने से, ऐप्पल के मल्टीटास्किंग एपीआई ऐप्स को तीन नए पृष्ठभूमि मोड में चलाने की अनुमति देते हैं: पृष्ठभूमि लाने, रिमोट अधिसूचना सामग्री, और पृष्ठभूमि स्थानांतरण सेवा। ऐप्पल आईओएस उपयोगकर्ताओं को यह नियंत्रित करने की क्षमता भी देता है कि पृष्ठभूमि में सभी ऐप्स को चलाने की अनुमति है या क्या व्यक्तिगत ऐप्स पृष्ठभूमि में चल सकते हैं (सेटिंग> सामान्य> पृष्ठभूमि ऐप रीफ्रेश)। क्या मेरे ऐप को प्रोग्रामेटिक रूप से पता लगाने का कोई तरीका है कि उपयोगकर्ता ने पृष्ठभूमि में रीफ्रेश करने के लिए अपने ऐप की क्षमता को अक्षम कर दिया है या नहीं?आईओएस में पृष्ठभूमि ऐप रीफ्रेश के लिए उपयोगकर्ता सेटिंग्स का पता लगाना 7

उत्तर

69

यही वह है जिसे आप ढूंढ रहे हैं।

if ([[UIApplication sharedApplication] backgroundRefreshStatus] == UIBackgroundRefreshStatusAvailable) { 

    NSLog(@"Background updates are available for the app."); 
}else if([[UIApplication sharedApplication] backgroundRefreshStatus] == UIBackgroundRefreshStatusDenied) 
{ 
    NSLog(@"The user explicitly disabled background behavior for this app or for the whole system."); 
}else if([[UIApplication sharedApplication] backgroundRefreshStatus] == UIBackgroundRefreshStatusRestricted) 
{ 
    NSLog(@"Background updates are unavailable and the user cannot enable them again. For example, this status can occur when parental controls are in effect for the current user."); 
} 
+2

धन्यवाद, यह उपयोगी था। हालांकि, क्या आप इस संबंध में अपने आश्रित प्रश्न पर टिप्पणी कर सकते हैं - http://stackoverflow.com/questions/19235183/uiapplicationbackgroundrefreshstatusdidchangenotification-usage-without-correspo – Ashok

+0

हाय, थाईएस विधि को कॉल करना था। पृष्ठभूमि में –

+0

पर कॉल करने में विफल रहता है I ' मी अनुमान पृष्ठभूमि ऐप रीफ्रेश के पास मौन अधिसूचनाओं के साथ कुछ लेना देना सही नहीं है? – Honey

8

यूआईपीप्लिकेशन की पृष्ठभूमि की जांच करें RreshreshStatus प्रॉपर्टी। निम्नलिखित सेब दस्तावेज़ से उद्धृत किया गया है।

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

3

स्विफ्ट 3 और iOS10 के लिए अपडेट किया गया:

switch UIApplication.shared.backgroundRefreshStatus { 
case .available: 
    print("Refresh available") 
case .denied: 
    print("Refresh denied") 
case .restricted: 
    print("Refresh restricted") 
} 
संबंधित मुद्दे