Ich habe versucht, die neue ios7 background transfer api zu verwenden, um einige Fotos auf einen Server hochzuladen. Was ist jetzt passiert? 1) wir laden die Bytes nach s3 hoch 2) Rufen Sie eine Service-API auf, um den Upload zu vervollständigen
Ich schaute auf dieses Dokument und es scheint Hintergrund NSURLSession unterstützt 'Daten' Aufgabe nicht. Bedeutet das, dass ich den Schritt 2 im Hintergrund nach dem eigentlichen Upload nicht machen kann?
Wenn Sie eine einfachere Lösung als das Umwidmen von NSURLSessionDownloadTask
für Ihren "abgeschlossenen" API-Aufruf wünschen, können Sie einen schnellen http-Aufruf während des Callbacks in:
-URLSession:task:didCompleteWithError:
Für S3 mit Hintergrundaufgabe siehe meine Antwort hier
Eine weitere gute Ressource ist der Apfel-Beispielcode hier und suchen Sie nach "Simple Background Transfer"
Sie müssen eine Upload-Aufgabe erstellen und von der lokalen Datei hochladen. Während Ihre App ausgeführt wird, werden die NSURLSessionTaskDelegate-Delegatmethoden nach Abschluss des Upload-Abschlusses beim Abschluss aufgerufen:
%Vor%Wenn Ihre App in den Hintergrund geriet oder sogar von iOS (und nicht vom Benutzer) getötet wurde, würde Ihre App mit
aufwachen %Vor%Und dann würde Ihre NSURLsession-Delegate-Methode
aufgerufen werden %Vor%Wie Sie es erstellen sollten, folgen Sie in Ihrer AppDelegate hinzufügen
%Vor%Dann fügen Sie in Ihrer Controller / Modellklasse
hinzu %Vor% NSURLSessions
hat eine Delegatmethode URLSessionDidFinishEventsForBackgroundURLSession
, die aufgerufen wird, nachdem die Sitzung alle ihre Aufgaben abgeschlossen hat. Ich glaube, du solltest dort einen Api-Ruf durchführen.
Tags und Links ios afnetworking ios7 nsurlsession