三 Flavor(Shijiaobao / Clinical / Yiwangxin)iOS 项目
架构
- Shared/ 全部共用层:AppHomeView、WebMessageHandler(JSBridge)、DevUrlSettings
- *Flavor/ 各 flavor 入口:AppConfig、*App(@main)、AppDelegate(Yiwangxin 含 Push)
- project.yml + xcodegen 管理项目结构
SDK 集成
- 引用 Gitea SPM 包(branch: main,SNAPSHOT 开发模式)
- sdk.properties 追踪当前 SDK_REF,scripts/use-sdk.sh 支持 main/local/x.y.z 一键切换
- 含各 flavor xuqm/*.xuqmconfig 配置文件
JSBridge 协议
- window.webkit.messageHandlers.SZYX_APP.postMessage(json)
- 回调 window.SZYX_YWX_WebViewBridge.onMessage(json)
- 实现 setTitle/getDeviceInfo/login/setUserInfo/getAppVersion/checkUpdate
setStorage/getStorage/removeStorage/clearStorage/setOrientation/apiError
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
26 行
549 B
Swift
26 行
549 B
Swift
import SwiftUI
|
|
import XuqmCoreSDK
|
|
import XuqmBugCollectSDK
|
|
|
|
@main
|
|
struct ClinicalApp: App {
|
|
init() {
|
|
do {
|
|
try XuqmSDK.shared.autoInitialize(debug: _isDebugAssertConfiguration())
|
|
} catch {
|
|
print("[ClinicalApp] XuqmSDK.autoInitialize failed: \(error)")
|
|
}
|
|
#if DEBUG
|
|
BugCollectSDK.shared.setLogLevel(.debug)
|
|
#else
|
|
BugCollectSDK.shared.setLogLevel(.warn)
|
|
#endif
|
|
}
|
|
|
|
var body: some Scene {
|
|
WindowGroup {
|
|
AppRootView()
|
|
}
|
|
}
|
|
}
|