Używam interfejsu API GoogleDrive w mojej aplikacji do przesyłania plików z mojej aplikacji. Do tej pory udało mi się znaleźć dobre wyniki dotyczące przesyłania wszystkich typów plików.Nigdy nie wysyłam postępu danych w Google API dla ios
Podążałem za Google example, aby przesłać pliki.
Próbuję pokazać postęp, w zależności od rozmiaru pliku, podczas przesyłania. Przeszedłem przez wiele klas w podanym przykładzie kodu google, ale nie ma zbyt wiele wyników.
Kroki następnie uzyskać postęp przesyłania plików:
Znalazłem poniżej metody w GTLServices.m
- (void)setUploadProgressBlock:(GTLServiceUploadProgressBlock)block {
[uploadProgressBlock_ autorelease];
uploadProgressBlock_ = [block copy];
if (uploadProgressBlock_) {
// As above, we need the fetcher to call us back when bytes are sent.
SEL sentDataSel = @selector(objectFetcher:didSendBytes:totalBytesSent:totalBytesExpectedToSend:);
[[self objectFetcher] setSentDataSelector:sentDataSel];
}
}
Po tym jak w MyViewController.m pisemnej tym
[self.driveService setUploadProgressBlock:^(GTLServiceTicket *ticket, unsigned long long numberOfBytesRead, unsigned long long dataLength) {
NSLog(@"uploading");
}];
Powyżej NSLog nigdy się nie usprawiedliwia, dlatego nie mogę pobrać przesłanych bajtów danych. Przez debugowanie natrafiam na uploadProgressBlock_ zawsze wyświetlający zero. może to być rezonowane, a mój blokujący blok nie zostanie wykonany.
Proszę zasugerować, jeśli popełniłem jakikolwiek błąd, aby to rozwiązać. Jeśli ktoś ma pomysł na pobranie bajtów danych przesłanych do google drive dla pliku, proszę mnie zasugerować. Twoje sugestie są bardziej przydatne w mojej pracy.
Z góry dziękuję.
Skonsolidowane Odpowiedz przez biorąc nasze sugestie ludzi:
Oto kod, aby uzyskać informacje o postępie przesyłania
GTLServiceTicket *uploadTicket= [self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,GTLDriveFile *updatedFile,NSError *error)
{
if (error == nil)
{
[self.delegate completedFileUploadingToGoogleDrive];
NSError *fileDeletionError=nil;
[[NSFileManager defaultManager] removeItemAtPath:absalutePath error:&fileDeletionError];
} else
{
[self.delegate errorOccoredWhileUploadingToGoogleDrive:error];
}
}];
[uploadTicket setUploadProgressBlock:^(GTLServiceTicket *ticket, unsigned long long totalBytesWritten, unsigned long long totalBytesExpectedToWrite) {
[self.delegate uploadedFileInfoInKB:(float)totalBytesExpectedToWrite/1024 and:(float)totalBytesWritten/1024];
}];
Szczęśliwy Coding !!
hi Ajay Potrzebuję waszej pomocy, mam zrobić integrację Google i I z powodzeniem przesłać plik audio do google Muszę pokazać pasek postępu podczas przesyłania pliku audio do google drive, jeśli wiesz o tej koncepcji, zasugeruj mi, jak mogę to zrobić? – Ravindhiran
@Ravindhiran Proszę zobaczyć moje pytanie, które edytowałem i podałem kod odpowiedzi. – ajay
+1 działa dobrze, dzięki ajay ... – Ravindhiran