3

它会在我的应用程序启动时检查用户是否登录到 Dropbox。如果是,则继续使用与 Dropbox 相关的代码。如果没有,它会向他们显示一个使用[[DBSession sharedSession] link];.

如果授权失败,则从登录屏幕出现此委托:

-(void)sessionDidReceiveAuthorizationFailure:(DBSession *)session userId:(NSString *)userId {
    [[DBSession sharedSession] link];
}

但是授权成功时似乎没有什么东西。我该如何处理这种情况?与 Dropbox 链接后,我需要开始运行必要的代码。

4

2 回答 2

5

您在 Dropbox API 中处理成功登录

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url功能

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


    if ([[DBSession sharedSession] handleOpenURL:url]) {
        //Successfully Logged in to Dropbox
        return YES;
    }

    return NO;

}

于 2012-08-06T15:10:08.170 回答
1

作为 applicationDidFinishLaunching 的一部分,您可以启动 Dropbox api,您可以执行以下操作。

dispatch_async(dispatch_get_main_queue(), ^{  
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    DBSession* dbSession = [[[DBSession alloc] initWithAppKey:@"appKey" appSecret:@"appSecret" root:kDBRootAppFolder] autorelease];
    dbSession.delegate = self;  
    [DBSession setSharedSession:dbSession];  
    [[NSNotificationCenter defaultCenter] postNotificationName:kSharedSessionAvailability  object:[NSNumber numberWithBool:dbSession != nil ? YES : NO]];  
});

但通常您只需获取会话并稍后通过 restClient 使用它。

于 2012-08-06T14:36:52.747 回答