6

現在開いているビューで URL スキームを取得するために UIApplication 通知を処理しようとしています。いくつかの通知を試しましたが、どのオブジェクトに URL スキームが含まれているかわかりません。

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

誰かがこの問題について私を助けてくれますか。

4

2 に答える 2

8

@Mike Kが述べたように、次のメソッドの1つ(または両方)を実装する必要があります。

- 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;
}
于 2012-01-25T22:46:52.537 に答える
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 :

于 2012-01-25T09:44:23.250 に答える