因此,我知道在watchOS上,您可以安排(和重新安排)- hosts:
- hostA
become: yes
pre_tasks:
- pause:
prompt: "Give your username"
register: prompt
no_log: yes
run_once: yes
- set_fact:
username: "{{prompt.user_input}}"
no_log: yes
run_once: yes
- pause:
prompt: "Give your password"
echo: no
register: prompt
no_log: yes
run_once: yes
- set_fact:
password: "{{prompt.user_input}}"
no_log: yes
run_once: yes
tags: [my_role_using_user_pass]
roles:
- role: my_role_using_user_pass
在后台为您工作。这对于我的应用程序来说非常有用,可以确保数据在watchOS上是最新的,尤其是因为它不会收到iOS和macOS之类的更新。
除了,我的数据使用CloudKit来存储用户的数据。
我想使用类似WKRefreshBackgroundTask
的场景,在该场景中,您安排URLSession
,在其中创建后台WKApplicationRefreshBackgroundTask
任务并将其交给系统。系统依次将您交给URLSession
,您可以在其中检查数据是否完成了WKURLSessionRefreshBackgroundTask
(通过检查下载的数据是否存在)。
我的问题是,您如何使用CloudKit做类似的事情?
我可以只在URLSession
中下载用户的数据,但我不保证在系统提供给我的应用程序的时间内它会完成。这就是为什么(似乎)Apple建议您将其分为两个后台任务:
WKApplicationRefreshBackgroundTask
-创建WKApplicationRefreshBackgroundTask
并将其交给系统。URLSession
-对从步骤1下载的数据进行处理。我不确定您是否可以使用CloudKit做到这一点?或者,至少我似乎找不到类似的东西。
答案 0 :(得分:1)
如果要使用WKURLSessionRefreshBackgroundTask
,则必须通过URLSession访问iCloud数据库。这可以通过应用程序实现,但要复杂得多。
如果要尝试,请不要忘记在iCloud仪表板上获取数据库的API请求令牌。