小编Blu*_*rXD的帖子

SwiftUI 上的 BackgroundTasks 和 BGTaskScheduler 未触发

我正在尝试设置一些BackgroundTasks在应用程序关闭时定期运行一些代码(比如每天一次)。我相信BackgroundTasksswift 上的 API 就是为了这个?(如果我弄错了,请告诉我)。我按照Apple 文档上的文章来实现它,并调整它以适应 SwiftUI。

问题:后台任务永远不会触发,但处于“待处理”状态(如图所示)

免责声明:我确实添加了该Background Modes功能并进行了检查Background fetchBackground processing并将标识符添加到Info.plist

代码

Main- 设置应用程序委托,获取场景,设置 UserDefaults 计数器,获取所有待处理任务的按钮,显示 UserDefault 计数器的文本,添加到 UserDefault 计数器的按钮,schedule()当应用程序进入后台时调用任务

import SwiftUI
import BackgroundTasks

@main
struct GyfterApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
    @Environment(\.scenePhase) var scene
    @AppStorage("test") var test = 1
    
    var body: some Scene {
        WindowGroup {
            VStack {
                Button("Test") {
                    BGTaskScheduler.shared.getPendingTaskRequests { all in
                        print("Pending Tasks Requests", all)
                    }
                }
                Text("\(test)") …
Run Code Online (Sandbox Code Playgroud)

ios swift background-task swiftui

6
推荐指数
1
解决办法
1103
查看次数

标签 统计

background-task ×1

ios ×1

swift ×1

swiftui ×1