d6aeede2bc
从桌面工程复制而来,作为本仓库的 Xuxucheck/ 子目录。 为控制仓库体积做了两处删减: - 移除 Frameworks/opencv2.xcframework 下的两个 visionOS 切片 (xros-arm64、xros-arm64-simulator,合计约 106 MB),并同步删掉该 xcframework 内 Info.plist 里对应的两条 AvailableLibraries 记录, 只保留 ios-arm64 与 ios-arm64_x86_64-simulator。 - 移除全部 .DS_Store 与 xcuserdata/。 已用 xcodebuild 从本目录完整编译验证:BUILD SUCCEEDED, ProcessXCFramework 以 --platform ios 成功选中框架,产物含 3699 个 cv:: 符号 (OpenCV 确实链入),嵌入 framework 3 个,与移除无用 pod 之后的状态一致。 仓库约 206 MB,其中 OpenCV 203 MB、其余源码与依赖约 3 MB。
84 lines
2.6 KiB
Swift
84 lines
2.6 KiB
Swift
//
|
|
// XuXuCheckApp.swift
|
|
// XuXuCheck
|
|
//
|
|
// Created by henseycai on 2025/5/26.
|
|
//
|
|
|
|
//some references
|
|
//https://www.hackingwithswift.com/quick-start/swiftui/how-to-run-some-code-when-state-changes-using-onchange
|
|
|
|
//https://developer.apple.com/documentation/swiftui/view/onchange(of:perform:)
|
|
|
|
//https://github.com/yannickl/DynamicColor/tree/master
|
|
|
|
import SwiftUI
|
|
|
|
@main
|
|
struct XuXuCheckApp: App {
|
|
|
|
@State var status = Status()
|
|
@State var loginViewModel = LoginViewModel()
|
|
@State var cameraViewModel = CameraViewModel()
|
|
//https://developer.apple.com/documentation/swiftui/migrating-from-the-observable-object-protocol-to-the-observable-macro
|
|
//https://developer.apple.com/documentation/swiftui/managing-model-data-in-your-app
|
|
@State var loginStatus = LoginStatus()
|
|
@State var webViewModel = WebViewModel()
|
|
|
|
init(){
|
|
loginStatus.isLogin = Storage.shared.isLogin
|
|
|
|
getSelfData()
|
|
}
|
|
|
|
func getSelfData(){
|
|
if(loginStatus.isLogin == false){
|
|
return
|
|
}
|
|
|
|
|
|
APIService.instance.getSelf(completion: {(model,error) in
|
|
if let error = error{
|
|
|
|
debugPrint(error)
|
|
|
|
|
|
return
|
|
}
|
|
|
|
//Storage.Print()
|
|
|
|
if let model = model {
|
|
Storage.shared.userid = model.data?.userinfo?.user_id ?? 0
|
|
//Storage.shared.usertoken = model.data?.usertoken ?? ""
|
|
if let usertoken = model.data?.usertoken {
|
|
Storage.shared.usertoken = usertoken
|
|
}
|
|
Storage.shared.mobile = model.data?.userinfo?.user_mobile ?? ""
|
|
Storage.shared.email = model.data?.userinfo?.user_email ?? ""
|
|
Storage.shared.username = model.data?.userinfo?.user_nickname ?? ""
|
|
Storage.shared.useravatar = model.data?.userinfo?.user_avatar ?? ""
|
|
|
|
Storage.shared.member_id = model.data?.defaultMember?.member_id ?? 0
|
|
Storage.shared.member_name = model.data?.defaultMember?.member_name ?? ""
|
|
Storage.shared.member_avatar = model.data?.defaultMember?.member_avatar ?? ""
|
|
}
|
|
|
|
|
|
})
|
|
}
|
|
|
|
var body: some Scene {
|
|
WindowGroup {
|
|
ContentView()
|
|
.environment(status)
|
|
.environment(loginViewModel)
|
|
.environment(cameraViewModel)
|
|
.environment(loginStatus)
|
|
.environment(webViewModel)
|
|
}
|
|
}
|
|
|
|
|
|
}
|