私は私のために働いた以下のコードを使用しました、それはユーザーがドロップボックスログインをキャンセルしたかユーザーログインが成功した場合の両方の条件で役立ちます
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
NSString *stringUrl = [url absoluteString];
if ([stringUrl containsString:@"cancel"]) {
// Handle if user cancelled the login
[[NSNotificationCenter defaultCenter] postNotificationName:@"dropboxRegistrationCancel" object:self];
return NO;
}
if ([[DBSession sharedSession] handleOpenURL:url]) {
if ([[DBSession sharedSession] isLinked]) {
// From below notification u can fetch your data from Dropbox
[[NSNotificationCenter defaultCenter]
postNotificationName:@"isDropboxLinked"
object:[NSNumber numberWithBool:[[DBSession sharedSession] isLinked]]];
// Add whatever other url handling code your app requires here
}
return YES;
} return NO;
}
ログイン後に初めてファイルをフェッチするには、viewDidLoadでファイルのリストを表示しているクラスにこのコードを配置します
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(isDropboxLinkedHandle:) name:@"isDropboxLinked" object:nil];
および isDropboxLinkedHandleの実装:
- (void)isDropboxLinkedHandle:(id)sender {
if ([[sender object] intValue]) {
// fetch all files
[[self restClient] loadMetadata:@"/"];
}
}
それが感謝に役立つことを願っています。