6

我正在尝试处理 UIApplication 通知以在当前打开的视图中获取 URL 方案。我已经尝试了几个通知,但我不知道哪个对象包含 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 提到的,您必须实现以下一种(或两种)方法:

- 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 回答