- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个应用程序,用户可以在其中从应用程序和共享扩展启动后台文件上传。用户应该能够监控从主应用程序上传的任何进度。
在从扩展程序启动上传的情况下,我需要创建一个后台 session 配置,其 id 与扩展程序中使用的相同,以获取委托(delegate)调用以监控应用程序中的进度等。
在应用程序中,直到扩展程序退出,我才能执行此操作。
苹果文档说 https://developer.apple.com/library/prerelease/content/documentation/Cocoa/Conceptual/URLLoadingSystem/Articles/UsingNSURLSession.html
You must create exactly one session per identifier (specified when you create the configuration object). The behavior of multiple sessions sharing the same identifier is undefined.
completeRequestReturningItems:completionHandler:
关闭共享扩展时在
NSExtensionContext
, 进程什么时候退出?
Calling this method eventually dismisses the app extension’s view controller.
最佳答案
奎因“爱斯基摩人”对这类问题进行了很好的讨论。 on the old Dev Forums here .
与您直接相关的部分是
In my tests I've noticed that some annoying behaviour falls out of this design: if you start a task from an extension, it's non-deterministic as to whether the app or extension gets the didCompleteWithError callback. If the task runs super quickly, the extension typically gets the callback. If the task takes longer, the system has time to terminate the extension and the app is resumed to handle it.
There's really no way around this. The workaround is to put the code that handles request completion in both your app and your extension (possibly reusing the code via a framework).
It would be nice if the extension could disconnect from the session immediately upon starting its request. Alas, that's not currently possible (rdar://problem/18748008). The only way to programmatically disconnect from the session is to invalidate it, and that either cancels all the running tasks (-invalidateAndCancel) or waits for them to complete (-finishTasksAndInvalidate), neither of which is appropriate.
is it possible that the upload finishes while the extension process is running so that I must handle the completion of the upload in the extension
how do you safely transfer an upload from an app extension to an app?
关于ios - 我怎么知道何时可以安全地重用来自另一个进程的后台 NSURLSessionConfiguration id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38117278/
我已经实现了以 20 个为一组下载大小为 1-2 MB 的 block 的代码。 session 完成前 20 个下载请求后,它将在 session 中设置新的 20 个请求。我已经在控制台日志中的真
找不到关于此实例变量的任何文档。 即使应用已移至后台,它是否与能够处理对网络请求的响应有关? 最佳答案 来自 SDK 的 NSURLSession 类注释: “为创建的任何 tcp 套接字启用扩展后台
我正在构建一个应用程序,用户可以在其中从应用程序和共享扩展启动后台文件上传。用户应该能够监控从主应用程序上传的任何进度。 在从扩展程序启动上传的情况下,我需要创建一个后台 session 配置,其 i
是否可以忽略设备网络设置中的代理设置,而不是在使用 NSURLSession 时不使用代理? 基本上,如果连接失败,我想退回到不使用代理。 谢谢! 最佳答案 我非常确定在 session 配置中提供一
我正在从网上下载一个文件。文件有时很大,有时可能会达到 100MB,我想在应用程序进入后台或设备锁定时继续下载。为此,我正在使用 AFNetworking 3.0 [NSURLSessionConfi
授权 header 在 NSURLSessionConfiguration 中设置,但是它没有附加到 NSURLSessionDataTask。这是 Foundation framework 中的错误
我正在尝试运行后台 NSURLSessionDownloadTask。但是,我注意到在任务实际开始之前大约需要 30 秒。当我使用 defaultSessionConfiguration 时,任务几乎
当 session 设置为在后台工作时(通过 backgroundSessionConfiguration 调用),NSURLSessionConfiguration 的新超时属性似乎不起作用。 有人
我正在尝试用 NSUrlSession 替换一些古老的网络代码,但是将 HTTPMaximumConnectionsPerHost 设置为 1 没有任何效果。这个请求代码被调用了 170 次,但它在任
我在官方文档中看到,NSURLSessionConfiguration 和 NSURLRequest 共享一些相同或相似的属性。比如NSURLRequestCachePolicy、networkSer
即使在设置缓存策略之后,我的 NSURLSession 仍在加载缓存数据: let url = NSURL(string: urlString); var sessionConfig = NSURLS
我正在使用代码: let configuration = NSURLSessionConfiguration.defaultSessionConfiguration() configuration.r
我遵循了本教程 Downloading files in background with URLSessionDownloadTask 还有这个苹果文档 Downloading Files in th
从一开始,我是如何配置NSURLSession的: auto securityPolicy = self.securityPolicy; NSURLSessionConfiguration *conf
我想从 NSObject 获取服务器响应,当我收到响应时,它已返回到 viewController。因为我在服务器调用 NSObject 类时实现,然后我调用NSObject 方法,但在服务器响应之前
有了新的 NSURLSession,NSURLSessionConfiguration 对象上现在有一个 timeoutIntervalForRequest 用于创建 session 。 但是 NSU
我正在构建一个 iOS 应用程序,它在后台将一堆文件上传到 Amazon S3 - 我正在使用 NSURLSession 结合 NSURLSessionConfiguration 为此和这似乎运作良好
我正在使用 NSURLSession 进行 REST 网络服务调用。我已经在 NSURLSessionConfiguration.HTTPAdditionalHeaders 中设置了网络服务的内容类型
此方法设置背景对象。 - (void) downloadWithURL: (NSMutableArray *)urlArray pathArr: (NSMutableArra
我用一行代码启动了一个新的 Swift 应用程序: 让 config = NSURLSessionConfiguration.defaultSessionConfiguration() 和链接的二进制
我是一名优秀的程序员,十分优秀!