Отобразить индикатор загрузки после нажатия пользователем кнопки «Поделиться» и до завершения запроса? - PullRequest
0 голосов
/ 31 августа 2011

Проблема, с которой я столкнулся, заключается в том, что после того, как пользователи нажимают кнопку «Поделиться» на FBDialog, они не получают никакой визуальной обратной связи, пока запрос не завершится или не завершится неудачей ... и через 3G, что может занять некоторое время.В течение этого времени пользователи не знают, правильно ли они нажали «Поделиться», и существует риск размещения контента дважды.

Есть ли способ получить обратный вызов, чтобы в это время отображать индикатор загрузки??Куда мне положить этот кусок?

Спасибо!

Ответы [ 2 ]

1 голос
/ 15 сентября 2011

Ниже кода вы пишете на fbAgent.m, а также наблюдаете код здесь, вы получаете один «PID» в то время, когда вы пишете, чтобы предупредить сообщение ....... пользователь может понять, что сообщение было успешно опубликовано в Facebook.

Надеюсь, это поможет.

- (void)request:(FBRequest*)request didLoad:(id)result {
    if ([request.method isEqualToString:@"facebook.fql.query"]) {
        NSArray* users = result;
        NSDictionary* user = [users objectAtIndex:0];
        NSString* name = [user objectForKey:@"name"];

        // Calling the delegate callback
        [delegate facebookAgent:self didLoadName:name];

    } else if ([request.method isEqualToString:@"facebook.users.setStatus"]) {
        newStatus = nil;
        NSString* success = result;
        if ([success isEqualToString:@"1"]) {

            // Calling the delegate callback
            [delegate facebookAgent:self statusChanged:YES];

        } else {
            [delegate facebookAgent:self statusChanged:NO];
        }
    } else if ([request.method isEqualToString:@"facebook.photos.upload"]) {
        NSDictionary* photoInfo = result;
        NSString* pid = [photoInfo objectForKey:@"pid"];
        UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil message:[NSString stringWithFormat:@"success Uploaded Your image please check your FaceBook", pid] delegate:self cancelButtonTitle:nil otherButtonTitles:@"Ok", nil];
        [alertView show];
        [alertView release];
        fbbut.enabled=YES;
        [fbact stopAnimating];

        self.uploadImageData = nil;
        self.uploadImageCaption = nil;
        self.uploadImageAlbum = nil;
        //[delegate facebookAgent:self photoUploaded:pid];

        if(newStatus){
            [self setStatus:newStatus];
        }
    }
}
0 голосов
/ 31 августа 2011

Запустите свой индикатор при нажатии на кнопку и остановите функцию делегата Facebook

- (void)dialogDidComplete:(FBDialog *)dialog

Надеюсь, это поможет ....

...