2012-01-25 12 views
6

का उपयोग कैसे करें मैं वर्तमान खुले दृश्य में यूआरएल योजनाएं प्राप्त करने के लिए यूआईपीप्लिकेशन अधिसूचनाओं को संभालने की कोशिश कर रहा हूं। मैंने कई अधिसूचनाओं की कोशिश की है लेकिन मुझे नहीं पता कि किस ऑब्जेक्ट में यूआरएल योजनाएं हैं।UIApplication handleOpenURL नोटिफिकेशन

NSNotificationCenter *nc = [NSNotificationCenter defaultCenter]; 
    //[nc addObserver:self selector:@selector(DocumentToDropboxDelegate) name:UIApplicationWillResignActiveNotification object:nil]; 
    [nc addObserver:self selector:@selector(DocumentToDropboxDelegate) name:UIApplicationDidFinishLaunchingNotification object:nil]; 

कोई मुझे इस मुद्दे के साथ मदद pelase कर सकते हैं।

उत्तर

8

रूप @Mike कश्मीर का उल्लेख आप एक (या दोनों) निम्न विधियों में से लागू करने के लिए होगा: अपने UIApplicationDelegate पर

- application:handleOpenURL: 
- application:openURL:sourceApplication:annotation: 

। उनके लिए कोई मिलान अधिसूचना नहीं है।

नीचे उदाहरण: आपके उत्तर के लिए

-(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation 
{ 
    if (url != nil && [url isFileURL]) { 
     [self.viewController handleOpenURL:url]; 
    } 
    return YES; 
} 

//Deprecated 
-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url { 

    if (url != nil && [url isFileURL]) { 
     [self.viewController handleOpenURL:url]; 
    } 
    return YES; 
} 
+1

पर भेज सकता हूं धन्यवाद, m0rt1m3r, मुझे पता है कि आप संस्कार समाधान पर हैं लेकिन मुझे एक और समस्या है। समस्या यह है कि मुझे वर्तमान खुले दृश्य में यूआरएल चाहिए। क्या मैं जांच सकता हूं कि वर्तमान में कौन सा दृश्य खुला है? –

+0

अपनी दृश्य की विंडो संपत्ति जांचने का प्रयास करें। यह शून्य नहीं होना चाहिए: अगर (viewController.view.window) {/ * दृश्यमान देखें * /} – m0rt1m3r

+2

ऐप्पल कहता है 'एप्लिकेशन: handleOpenURL:' को 'एप्लिकेशन: openURL: sourceAplication: annotation:' का उपयोग करने के लिए बहिष्कृत किया गया है – ToddB

2

application:handleOpenURL: आपके आवेदन प्रतिनिधि पर कहा जाता है - एनएसएनोटिफिकेशन के माध्यम से नहीं। लागू करने के लिए पसंदीदा प्रतिनिधि विधि है: application:openURL:sourceApplication:annotation:

अधिक जानकारी यहां पाया जा सकता: http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIApplicationDelegate_Protocol/Reference/Reference.html#//apple_ref/occ/intfm/UIApplicationDelegate/application:handleOpenURL:

+0

ठनक मैं UIApplication प्रतिनिधि के बारे में पता है, क्या मैं देख रहा हूँ मैं यूआरएल योजनाएं की NSURL लौटे प्राप्त कर सकते हैं कि के साथ एक सूचना है। –

+0

मुझे कैसे पता चलेगा कि कौन सा व्यू कंट्रोलर वर्तमान में खोला गया है? तो मैं यूआरएल को –

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