我的watchOS应用程序使用锻炼应用程序接口,以便在应用程序转到后台时保持运行。问题是,当应用程序在后台时,WCSession
变得无法访问。但是,我可以运行我的代码,在某些情况下,它需要向iPhone对应应用程序发送一条消息。
该应用程序的具体要求用户不必与其交互-如果出现超时,手表应用程序会自动将消息发送到手机。
这有可能实现吗?谢谢。
发布于 2021-03-17 03:04:22
我相信handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>)
方法就是您要找的。Documentation Link
如果没有看到您的代码,我就不能确定您当前的进度,但我已经使用此方法在用户位置更改时在后台更新了watchOS复杂性。
func handle(_ backgroundTasks: Set<WKRefreshBackgroundTask>) {
for task in backgroundTasks {
if WKExtension.shared().applicationState == .background {
// Do your background work here.
if let watchComplication = task as? WKWatchConnectivityRefreshBackgroundTask {
pendingConnectivityTasks.append(watchComplication)
}
}
task.setTaskCompletedWithSnapshot(true)
}
completePendingConnectivityTasksIfNeeded()
}
作为附注,我会补充说,如果你的应用程序不是一个实际的锻炼应用程序,它将被拒绝在应用程序审查期间使用HealthKit锻炼会话。
https://stackoverflow.com/questions/66601959
复制相似问题