2016-12-01 6 views
6

मैं स्क्रीन शॉट को बदलने की कोशिश कर रहा हूं जो ऐप द्वारा स्वचालित रूप से कैप्चर किया जाता है जब ऐप पृष्ठभूमि में प्रवेश करता है।आईओएस ऑटो स्क्रीन कैप्चर कब लिया जाता है?

हालांकि मुझे यह स्क्रीनशॉट लेने पर बिल्कुल पूरी तरह से यकीन नहीं है।

उदाहरण के लिए:

यदि आप सूचना पट्टी नीचे खींच जबकि अनुप्रयोग में निम्न विधि कहा जाता है:

- (void) applicationWillResignActive:(UIApplication *) application { 
} 

इसके अलावा, अगर आप डबल टैप होम बटन एप्लिकेशन एक ही विधि में कहा जाता है। इसके अलावा यदि एक चेतावनी दृश्य 'applicationWillResignActive' दिखाया जाता है।

लेकिन इन मामलों

- (void) applicationDidEnterBackground:(UIApplication *) application { 
} 

दोनों में नहीं बुलाया जाता है।

तो मेरा सवाल यह है कि एप्लिकेशन के कॉल के बाद एक स्क्रीनशॉट कैप्चर किया गया है, भले ही एप्लिकेशन पृष्ठभूमि में प्रवेश न करे? या आईओएस केवल आवेदन के बाद एक स्क्रीनशॉट कैप्चर करता है DidEnterBackground?

उत्तर

3

आप, सारांश में here से अधिक देख सकते हैं, applicationDidEnterBackground से लौटने से पहले दृश्य में परिवर्तन:

+0

या यहां तक ​​कि प्राथमिक स्रोत के लिए सीधे जाना हो जाता है इससे पहले कि एप्लिकेशन को पृष्ठभूमि में चला जाता है: https://developer.apple। com/पुस्तकालय/सामग्री/प्रलेखन/iPhone/वैचारिक/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution।एचटीएमएल – Tommy

1

हां।

- (void) applicationWillResignActive:(UIApplication *) application { }

कहा जाता है जब आप सूचना पट्टी नीचे खींच या यहाँ तक कि आप दोगुना जब घर बटन क्लिक करें। ओएस द्वारा आपकी संवेदनशील जानकारी को कैप्चर करने के लिए आपको यहां कुछ करना है। एक वैकल्पिक हल हो सकता है:

  1. सेट एक धुँधली स्क्रीन आच्छादन से पहले एप्लिकेशन एप्लिकेशन सक्रिय निकालें इस ओवरले

कुछ इस तरह हो जाता है पृष्ठभूमि में

  • जाता है:

    -(void)applicationWillResignActive:(UIApplication *)application 
    { 
        imageView = [[UIImageView alloc]initWithFrame:[self.window frame]]; 
        [imageView setImage:[UIImage imageNamed:@"blurryImage.png"]]; 
        [self.window addSubview:imageView]; 
    } 
    

    और फिर एप्लिकेशन को अग्रभूमि में प्रवेश करने से पहले इस ओवरले को हटा दें:

    - (void)applicationDidBecomeActive:(UIApplication *)application 
    { 
        if(imageView != nil) { 
         [imageView removeFromSuperview]; 
         imageView = nil; 
        } 
    } 
    
  • +0

    यह मेरे प्रश्न का उत्तर नहीं देता है। मुझे लगता है कि उन परिस्थितियों में एप्लिकेशन WillResignActive कहा जाता है। हालांकि ऐप स्क्रीनशॉट कब लेता है? एप्लिकेशनWillResignActive या applicationDidEnterBackground? – lostintranslation

    +0

    ठीक है मैं समझता हूँ। अपने 'AppDelegate.m' में उन विधियों में ** Apple ** द्वारा प्रदान किए गए दस्तावेज़ देखें, आपको अपना उत्तर मिल जाएगा। वैसे, सटीक होने के लिए, 'applicationWillResignActive' आपके प्रश्न का उत्तर होना चाहिए। – nayem

    0

    जब आप अधिसूचना बार को खींचते हैं या यहां तक ​​कि जब आप होम बटन पर डबल क्लिक करते हैं तो भी कहा जाता है। ओएस द्वारा आपकी संवेदनशील जानकारी को कैप्चर करने के लिए आपको यहां कुछ करना है। एक वैकल्पिक हल हो सकता है:

    सेट एक धुँधली स्क्रीन आच्छादन एप्लिकेशन सक्रिय निकालें इस ओवरले

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