当应用未关闭(手腕降低)时,未调用WatchOS背景URLSession句柄(_:)

时间:2019-08-22 10:12:28

标签: watchkit apple-watch watch watchos nsurlsessiondownloadtask

我正在尝试创建一个Watch-App,用于下载数据(大约30 MB)。

因此,我创建了一个具有如下背景配置的URLSession:

let config = URLSessionConfiguration.background(withIdentifier: "<some-id>")
self.session = URLSession(configuration: config, delegate: self, delegateQueue: .main)

然后开始下载:

let request = URLRequest(url: "<some-url>", method: .GET)
self.task = session.downloadTask(with: request)
self.task.resume()

由于5分钟内用户不会凝视手表,因此我想在下载完成后通过一些触觉反馈通知他。 因此,我想使用ExtensionDelegate的handle(_:)函数。根据文档,下载完成后应使用WKURLSessionRefreshBackgroundTask进行调用:

  

发生以下任何事件时,系统都会创建后台URLSession任务:   必须进行身份验证才能完成后台传输。   与会话标识符关联的所有后台传输均已完成(成功或失败)。 https://developer.apple.com/documentation/watchkit/wkurlsessionrefreshbackgroundtask

仅当我关闭应用程序(按表冠)时,才调用此handle(_:)方法,而当我放下手腕以锁定屏幕时,则不会调用该方法。

我还注意到,如果我再次看一下手表,urlSession(.. didWriteData ..)的回调将不再起作用。

我是否缺少某些东西,或者甚至是预期的行为?我正在安装了WatchOS 5的真实Apple-Watch Series 4上进行测试。

0 个答案:

没有答案