apple提供的api:
WKExtendedRuntimeSession
设置下这里的类型。
切记,目前4种类型的区别:
根据自己的需求来进行选择。
最后上代码:
import Foundation
import WatchKit
final class ExtendedRuntimeSessionManager: NSObject, WKExtendedRuntimeSessionDelegate {
// MARK: - Stored properties
private var session: WKExtendedRuntimeSession?
// MARK: - Inits
override init() {
super.init()
}
// MARK: - Functions
func startSession() {
guard session?.state != .running else { return }
session = WKExtendedRuntimeSession()
session?.delegate = self
session?.start()
print("Session started")
}
func stopSession() {
guard session?.state != .invalid else { return }
session?.invalidate()
print("Session stopped")
}
// MARK: - Delegate functions
func extendedRuntimeSessionDidStart(_ extendedRuntimeSession: WKExtendedRuntimeSession) {}
func extendedRuntimeSessionWillExpire(_ extendedRuntimeSession: WKExtendedRuntimeSession) {}
func extendedRuntimeSession(_ extendedRuntimeSession: WKExtendedRuntimeSession, didInvalidateWith reason: WKExtendedRuntimeSessionInvalidationReason, error: (any Error)?) {
print("Session invalidated with reason: \(reason.rawValue), error: \(error?.localizedDescription ?? "No error")")
}
}