在共享扩展中上传图像会导致NSURLErrorDomain Code = -997

时间:2014-12-05 16:29:15

标签: ios ios8 nsurlsession ios8-share-extension

我尝试实现一个扩展程序,用户可以在App.net上共享图像。

经过大量的反复试验后,我终于出了想法。

我有一个框架来创建请求。该请求是Content-Disposition: form-data POST 请求。因此,我认为我必须使用sessionDataTask上传图片。

会话的委托是同一框架中的单例。一些委托方法被调用。

但永远不会调用didReceiveData。在任何上传开始之前,我在didCompleteWithError中收到以下错误:

Error Domain=NSURLErrorDomain Code=-997 "Lost connection to background transfer service" UserInfo=0x7b29dc80 {NSErrorFailingURLKey=https://alpha-api.app.net/stream/0/files, NSErrorFailingURLStringKey=https://alpha-api.app.net/stream/0/files, NSLocalizedDescription=Lost connection to background transfer service}

以下是共享扩展程序中的代码:

let imageUploadRequest = RequestFactory.imageUploadRequest(imageToShare, accessToken: accessToken!)

let sessionId = "de.dasdom.jupp.image.backgroundsession"

let config = NSURLSessionConfiguration.backgroundSessionConfigurationWithIdentifier(sessionId)

config.sharedContainerIdentifier = "group.de.dasdom.Jupp"

let session = NSURLSession(configuration: config, delegate: PostService.sharedService, delegateQueue: NSOperationQueue.mainQueue())

let sessionTask = session.dataTaskWithRequest(imageUploadRequest)
sessionTask.resume()

self.extensionContext!.completeRequestReturningItems(nil, completionHandler: nil)

这也会在主机应用中产生相同的错误。

我已在共享扩展程序和主机应用程序中设置了一个应用程序组。

上传确实有效,但我需要上传的响应来撰写App.net的帖子。当我使用普通的NSURLSession时,一切正常。

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:0)

我认为扩展返回时会取消数据任务。对于NSURLSessionUploadTask,您可能会更幸运,必须为后台上传请求提供文件支持。