import UIKit import XuqmCoreSDK import XuqmWebViewSDK import XuqmPushSDK final class AppDelegate: NSObject, UIApplicationDelegate, PushMessageDelegate, @unchecked Sendable { func application( _ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? ) -> Bool { PushSDK.shared.delegate = self return true } func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { XuqmSDK.shared.registerDeviceToken(deviceToken) } func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error) { print("[Push] Failed to register for remote notifications: \(error)") } // MARK: - PushMessageDelegate func pushSDK(_ sdk: PushSDK, didReceiveMessage message: PushMessage) { // Foreground notification: post to JS if WebView is active if let payload = try? JSONSerialization.data(withJSONObject: message.payload), let json = String(data: payload, encoding: .utf8) { let js = "window.SZYX_YWX_WebViewBridge&&window.SZYX_YWX_WebViewBridge.onPushMessage(\(json))" Task { @MainActor in XWebViewBridge.shared.postMessageToWeb(js) } } } func pushSDK(_ sdk: PushSDK, didTapNotification message: PushMessage) { // User tapped notification — navigate to relevant page via JS bridge if let payload = try? JSONSerialization.data(withJSONObject: message.payload), let json = String(data: payload, encoding: .utf8) { let js = "window.SZYX_YWX_WebViewBridge&&window.SZYX_YWX_WebViewBridge.onPushTapped(\(json))" Task { @MainActor in XWebViewBridge.shared.postMessageToWeb(js) } } } }