【发布时间】:2014-12-05 16:29:15
【问题描述】:
我尝试实现一个扩展,用户可以通过它在 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 时,一切正常。
任何帮助将不胜感激。
【问题讨论】:
标签: ios ios8 nsurlsession ios8-share-extension