响应第三方应用程序中的 WatchOS 10 锻炼小部件播放/暂停按钮

问题描述 投票:0回答:1

我一直在苹果的文档(以及网络的其余部分)中搜索这一点,但没有找到任何提及。还通过

HKWorkoutSession.h
查看 WatchOS 10 中可能相关的任何内容。我有一个适用于 Apple Watch 的锻炼应用程序。看来使用 HKWorkoutSession 会自动激活 Apple 在 WatchOS 10 中自己的堆栈小部件,显示经过的锻炼时间并为用户提供播放/暂停按钮。但是,它似乎无法让您自动访问播放/暂停按钮事件。我在为自己的小部件实现的
.onOpenURL(perform: { url in
方法中设置了断点。我还设置了断点

func workoutSession(_ workoutSession: HKWorkoutSession,
                        didChangeTo toState: HKWorkoutSessionState,
                        from fromState: HKWorkoutSessionState,
                        date: Date)

Apple 的小部件按钮不会触发这两种方法。

问题:如何监听播放/暂停按钮?或者,考虑到我正在实现自己的堆栈小部件,我可以为我的应用程序关闭此小部件吗?

注意:我自己使用 .onOpenURL 的小部件可以按需要工作,我对 HKWorkoutSessionDelegate 的使用也是如此。

swiftui widget apple-watch watchos healthkit
1个回答
0
投票

您可以尝试这个解决方案,我做到了,它解决了问题:

    func workoutSession(_ workoutSession: HKWorkoutSession, didGenerate event: HKWorkoutEvent) {
        if(event.type == HKWorkoutEventType.pauseOrResumeRequest) {
            if self.running {
                pauseWorkout()
            }
            else {
                resumeWorkout()
            }
        }
    }

希望有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.