2012-12-06 17 views
6

मैं अपने ऐप से एक कॉल करने के बाद मेरी एप्लिकेशन पर वापस लौटने की जरूरत है, तो मैं इस कोड का उपयोग:मेरे ऐप से कॉल करते समय उपयोगकर्ता ने कॉल दबाया या रद्द बटन कैसे पता लगाया है?

NSURL *url = [NSURL URLWithString:@"telprompt://123-4567-890"]; 
[[UIApplication sharedApplication] openURL:url]; 

उपयोगकर्ता बटन दबाता है इस कोड को निष्पादित करने के लिए, चेतावनी 2 बटन के साथ दिखाया गया है, "कॉल करें" और "रद्द करना"।

मैं कैसे पता कर सकते हैं उपयोगकर्ता दबाया अगर "कॉल" बटन?

उत्तर

7

यह सही नहीं है, लेकिन आप यह पहचान सकते हैं कि UIAplplicationSuspendedNotification को सुनकर "रद्द करें" के बजाय "कॉल" दबाया गया था (आपको इस घटना को अनदेखा करने के लिए कुछ तर्क जोड़ना होगा जब किसी ने 'घर' कुंजी, या तर्क के आसपास पर्यवेक्षक जहां फोन नंबर प्रस्तुत किया जा रहा है) को हटाने जोड़ने/द्वारा एक इनकमिंग कॉल को स्वीकार किया गया था ... शायद:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(suspended:) name:@"UIApplicationSuspendedNotification" object:nil]; 

-(void)suspended:(NSNotification *) notification 
{ 
    NSLog(@"Suspended"); 
} 
+1

मेरे लिए कानूनी .. –

+2

वास्तव में क्या मैं सिवाय इसके कि है आवश्यकतानुसार अपनी सूचना नहीं करता iOS6 उपयोग में अब मौजूद लगता है लगता है मैं UIApplicationDidEnterBackgroundNotification कोशिश की, लेकिन iOS8 में काम नहीं कर लगता है –

+0

@NicolasManzini: – BaSha

2

आईओएस शर्तों के अनुसार यह संभव नहीं है। कॉल पूरा करते समय एप्लिकेशन पर रीडायरेक्ट नहीं किया जा सकता है।

jailbroken फोन में केवल यह संभव है।

+0

यह संभव है, आप सफारी एपीआई का उपयोग करें, जो आपको बा वापस करने में मदद करता है सीके जहां आपने छोड़ा था। UIApplicationDidEnterBackgroundNotification – GameBegins

1

जब आवेदन कोड के ऊपर निष्पादित करता है, तो यह वर्तमान एप्लिकेशन & आईफोन के कॉल एप्लिकेशन पर नेविगेट करेगा। इसलिए, आवेदन के लिए यह संभव नहीं है कि मौसम उपयोगकर्ता ने कॉल या रद्द कर दिया हो .. उम्मीद है, यह आपकी मदद करेगा।

3
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(suspended:) name:@"UIApplicationSuspendedNotification" object:nil]; 

@J Saprio द्वारा उपरोक्त कोड बिल्कुल ठीक काम करता है । आवेदन एनएसएनोटिफिकेशन सेंटर को निलंबित करने से पहले "यूआईपीप्लिकेशंसस्पेन्ड नॉटिफिकेशन" कॉल करने के बाद, "कॉल" पर क्लिक करने के बाद यह "(निलंबित :)" विधि निष्पादित करेगा। यहां पकड़ है, हर बार जब आप NSNotification केंद्र विधि को कॉल करते हैं तो यह एक की वृद्धि के साथ (निलंबित :) को कॉल करेगा। समाधान [NSNotification केंद्र] के लिए पर्यवेक्षक को हटा दिया गया है। इसके लिए स्निपेट है। यह आपको केवल एक बार निम्नलिखित विधि निष्पादित करने में मदद करेगा।

-(void)suspended:(NSNotification *) notification 
{ 
    NSLog(@"Suspended"); 
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"UIApplicationSuspendedNotification" object:nil]; 

} 
0

इस कोशिश, मैं इस मुद्दे से निपटने के इस प्रकार है:

में - (शून्य) viewDidLoad:

NSNotificationCenter * center =[NSNotificationCenter defaultCenter]; 

[center addObserverForName:UIApplicationDidBecomeActiveNotification 
        object:nil 
        queue:[NSOperationQueue mainQueue] 
       usingBlock:^(NSNotification *note) 
{ 
    // use instance flag to know 
    if (self.isBeginCallPhone) 
    { 
     //do some thing 
     self.isBeginCallPhone = NO; 
    } 
}]; 

को न भूलें:

- (void)dealloc{ 
[[NSNotificationCenter defaultCenter]removeObserver:self]; 

}

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