2012-01-25 3 views
6

현재 열린보기에서 URL 스키마를 가져 오기 위해 UIApplication Notifications를 처리하려고합니다. 몇 가지 알림을 시도했지만 URL 스키마가 포함 된 개체를 모르겠습니다.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]; 

누군가가이 문제를 해결할 수 있습니까?

답변

8

@ 마이크 K는 다음 방법 중 하나 (또는 ​​둘 다)를 구현해야 할 것이다 언급 한 바와 같이 :

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

당신 UIApplicationDelegate에. 일치하는 알림이 없습니다. 아래

예 : 답장을 보내

-(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, 나는 당신이 의식 해결책을 알고 있지만 문제가 하나 더 있습니다. 문제는 현재 열려있는보기에서 URL이 필요합니다. 현재 어떤보기가 열려 있는지 확인할 수 있습니까? –

+0

보기의 창 속성을 확인하십시오. – m0rt1m3r

+2

애플은 'application : handleOpenURL :'이 (가) 'application : openURL : sourceApplication : annotation :'대신 'application : handleOpenURL :'을 사용하지 않기를 바란다고합니다. – ToddB

2

application:handleOpenURL:은 NSNotification이 아닌 응용 프로그램 위임자에게 호출됩니다. 구현할 때 바람직한 대리자 메서드는 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의 위임에 대해 알고, 내가 찾던 내가 URL 구성표의 NSURL을 반환받을 수있는 알림입니다. –

+0

현재 어떤 viewController가 열려 있는지 어떻게 알 수 있습니까? 그래서 URL을 –