2012-01-25 12 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

へのURLを渡すことができますありがとうm0rt1m3r、私はあなたが儀式のソリューション上にあることを知っているが、私はもう一つの問題があります。問題は、私は現在の開いているビューでURLが必要です。どのビューが現在開いているか確認できますか? –

+0

ビューのウィンドウプロパティを確認してみてください。 – m0rt1m3r

+2

Appleは 'application:handleOpenURL:'は非推奨で、 'application:openURL:sourceApplication:annotation:'を使用すると言っています。 – 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が現在開いているかはどのように分かりますか?だから私は –

関連する問題