修复合作获客扫码绑定崩溃与 Toast 层级,并接入分成比例修改。

将扫码页提升到列表层弹出并补齐 AppDelegate.window,避免扫码时 UIKit 取主窗口崩溃;Toast 改用独立 UIWindow 显示在 sheet 之上;合作获客员支持短信验证修改分成比例,同时优化冷启动根视图创建时机并补充相关测试。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-03 20:37:24 +08:00
parent 00c3cd0a93
commit 49e997ddba
20 changed files with 905 additions and 70 deletions

View File

@ -9,16 +9,34 @@ import UIKit
/// AppDelegate APNs SDK SwiftUI App adaptor
final class AppDelegate: NSObject, UIApplicationDelegate {
/// SwiftUI UIKit `delegate.window`
@objc var window: UIWindow?
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
syncKeyWindow()
NotificationCenter.default.addObserver(
self,
selector: #selector(syncKeyWindow),
name: UIWindow.didBecomeKeyNotification,
object: nil
)
Task { @MainActor in
WeChatManager.shared.registerIfNeeded()
}
return true
}
/// `window` key window UIKit / SDK AppDelegate
@objc private func syncKeyWindow() {
window = UIApplication.shared.connectedScenes
.compactMap { $0 as? UIWindowScene }
.flatMap(\.windows)
.first(where: \.isKeyWindow)
}
func application(
_ app: UIApplication,
open url: URL,