iOS: Führen Sie den upload task, während app ist im hintergrund
Gibt es wirklich keine Möglichkeit zum ausführen einer UPLOAD-Aufgabe, während eine iOS-app ist im hintergrund? Das ist lächerlich. Schaue verschiedene Sachen wie NSURLSessionUploadTask
, dispatch_after
und sogar NSTimer
, aber nichts funktioniert für mehr als die mageren 10 Sekunden die app, die Leben, nachdem er in den hintergrund gelegt.
Wie andere apps, uploads funktionieren? Sagen, das hochladen eines Bildes auf Facebook und die app im hintergrund, wird das Abbrechen der upload?
Warum nicht iOS hintergrund-Dienste oder Agenten wie Android und Windows Phone hat?
Dies ist eine kritische Funktion meiner app, und auf den anderen Plattformen funktioniert perfekt.
Jede Hilfe ist willkommen 🙁
- Dies scheint möglich zu sein, mithilfe des server-side-Programmierung, wenn Sie sind in der Lage zu erstellen und aufrufen einer webservice Aufgabe für Sie. Überprüfen Sie den link: stackoverflow.com/questions/25725811/... . Nicht sicher, wenn es für Sie relevant ist, in irgendeiner Weise.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie weiterhin uploads im hintergrund mit iOS 7+, wenn Sie
background(withIdentifier:)
für die Konfiguration beim instanziieren derURLSession
.Hinweis:
verwenden Sie die delegate-basierten
URLSession
;können Sie die Abschluss-handler-Darstellungen der task-factory-Methoden-hintergrund-Sitzungen; und
haben Sie auch zu verwenden
uploadTask(mit:fromFile:)
Methode, nicht dieData
Interpretation.Ihre app delegate implementieren muss
application(_:handleEventsForBackgroundURLSession:completionHandler:)
und erfassen, dass die Vollendung handler, die können Sie aufrufen, in IhremURLSessionDelegate
MethodeurlSessionDidFinishEvents(forBackgroundURLSession:)
.Durch die Art und Weise, wenn Sie nicht verwenden möchten hintergrund
NSURLSession
, aber Sie wollen, um weiter ausgeführt zu werden, eine endliche Länge Aufgabe für mehr als ein paar Sekunden nach dem app-Blätter-hintergrund, können Sie verlangen, mehr Zeit mitUIApplication
MethodebeginBackgroundTaskWithExpirationHandler
. Geben Sie ein paar Minuten, um alle Aufgaben, die Sie arbeiten. Siehe Listing 1 in Erweitern Sie Ihre App-Ausführung im Hintergrund Zeit:completionHandler
? Ich fand keine Erwähnung in deruploadTaskWithRequest:fromFile:completionHandler:
Methode Dokumentation, die sagen, dass es nicht sein verwendet für den hintergrund-upload-Aufgabe.URLSession
, die sagt "Da kann Ihre app beenden und neu aufgelegt werden, während die übertragung im Gange, Abschluss-handler-Block sind nicht unterstützt."background
Methode der Klasse, sind Sie immer noch anwendbar oder ist es ein update?multipart/form-data
, müssen Sie (a) manuell konstruieren Sie die Inhalte der Datei so strukturiert werden, wiemultipart/form-data
(viel, wie Sie manuell zu konstruieren, diehttpBody
einerdataTask
); und (b) manuell einstellenContent-Type
header derURLRequest
.URLSessionConfiguration
als.background
? Würde ich alles andere als gut..