感謝您查看此頁面。我正在開發一個手表應用程式,并想在 SwiftUI 中進行一些后臺資料處理。我嘗試使用 WKExtendedRuntimeSession 運行它,但是當它變為非活動狀態時它似乎沒有運行。
import SwiftUI
@main
struct FirebaseExample_Watch_AppApp: App {
var session = WKExtendedRuntimeSession()
init() {
session.start()
// MARK:- Extended Runtime Session Delegate Methods
func extendedRuntimeSessionDidStart(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
print(1)
}
func extendedRuntimeSessionWillExpire(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
print(2)
}
func extendedRuntimeSession(_ extendedRuntimeSession: WKExtendedRuntimeSession, didInvalidateWith reason: WKExtendedRuntimeSessionInvalidationReason, error: Error?) {
print(3)
}
}
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
但結果是,當我放下手臂并且應用程式螢屏消失的那一刻,什么也沒有發生。我也嘗試過這樣做;
init() {
func startTimerButtonPressed() {
print(WKApplicationState.RawValue())
var session = WKExtendedRuntimeSession()
session.start()
print(WKExtendedRuntimeSessionState.RawValue())
}
結果全為零,似乎沒有啟動。
如果您熟悉 WKExtendedRuntimeSession,請告訴我如何運行它。
參考 https://developer.apple.com/documentation/watchkit/wkextendedruntimesession
uj5u.com熱心網友回復:
您沒有為您的會話設定委托。可能的實作如下所示:
@main
struct TestWatchOSOnly_Watch_AppApp: App {
@State var session = WKExtendedRuntimeSession()
//define and create the delegate
@State var delegate = WKDelegate()
var body: some Scene {
WindowGroup {
ContentView()
.onAppear{
//create a new session
session = WKExtendedRuntimeSession()
//assign the delegate
session.delegate = delegate
//start the session
session.start()
}
}
}
}
// define the delegate and its methods
class WKDelegate: NSObject, WKExtendedRuntimeSessionDelegate{
func extendedRuntimeSession(_ extendedRuntimeSession: WKExtendedRuntimeSession, didInvalidateWith reason: WKExtendedRuntimeSessionInvalidationReason, error: Error?) {
print(reason.rawValue)
}
func extendedRuntimeSessionDidStart(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
print("did start")
}
func extendedRuntimeSessionWillExpire(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
print("will expire")
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/516573.html
標籤:迅速迅捷手表套件
上一篇:在Swift中動態定義類屬性