From 3463e9b7b220ec48c4fe834ea5b227dd1810ad3a Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Wed, 16 Apr 2025 10:40:07 +0800 Subject: [PATCH] fix view --- TODO.md | 14 ++++++++++++++ dimensionhub.xcodeproj/project.pbxproj | 2 ++ dimensionhub/Views/Search/SearchBar.swift | 15 ++++++++------- dimensionhub/dimensionhubApp.swift | 16 +++++++++++++--- 4 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 TODO.md diff --git a/TODO.md b/TODO.md new file mode 100644 index 0000000..d621435 --- /dev/null +++ b/TODO.md @@ -0,0 +1,14 @@ +## 增加接口 + +### 1. 获取用户的关注数 +GET: /api/follow_num?user_id=$user_id + +### 2. 保存用户的设备token +url: /api/device_token +method: post +params: +{ + user_id: string, + token: string +} + diff --git a/dimensionhub.xcodeproj/project.pbxproj b/dimensionhub.xcodeproj/project.pbxproj index 0b6511c..03e2274 100644 --- a/dimensionhub.xcodeproj/project.pbxproj +++ b/dimensionhub.xcodeproj/project.pbxproj @@ -27,6 +27,7 @@ C85F58C02D64D10F00D761E9 /* dimensionhub.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dimensionhub.app; sourceTree = BUILT_PRODUCTS_DIR; }; C85F58D22D64D11000D761E9 /* dimensionhubTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = dimensionhubTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C85F58DC2D64D11000D761E9 /* dimensionhubUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = dimensionhubUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + C8E6E2052DAF4A130014CDB3 /* TODO.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = TODO.md; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ @@ -88,6 +89,7 @@ C85F58B72D64D10F00D761E9 = { isa = PBXGroup; children = ( + C8E6E2052DAF4A130014CDB3 /* TODO.md */, C85F58C22D64D10F00D761E9 /* dimensionhub */, C85F58D52D64D11000D761E9 /* dimensionhubTests */, C85F58DF2D64D11000D761E9 /* dimensionhubUITests */, diff --git a/dimensionhub/Views/Search/SearchBar.swift b/dimensionhub/Views/Search/SearchBar.swift index 65e6c22..429cb7a 100644 --- a/dimensionhub/Views/Search/SearchBar.swift +++ b/dimensionhub/Views/Search/SearchBar.swift @@ -15,7 +15,7 @@ struct SearchBar: View { var placeholder: String var onSearch: () -> Void - @FocusState private var isFocused + @FocusState private var isFocused: Bool var body: some View { // 自定义搜索栏 @@ -47,10 +47,15 @@ struct SearchBar: View { } } .frame(maxWidth: .infinity) + .onTapGesture { + isFocused = true + } // 搜索按钮 Button { - onSearch() + if !searchText.isEmpty { + onSearch() + } } label: { Text("搜索") .font(.system(size: 18)) @@ -60,11 +65,7 @@ struct SearchBar: View { .disabled(searchText.isEmpty) } .onChange(of: searchText) { - if searchText.trimmingCharacters(in: .whitespaces).isEmpty { - isSearching = false - } else { - isSearching = true - } + isSearching = !searchText.trimmingCharacters(in: .whitespaces).isEmpty } .onAppear { DispatchQueue.main.async { diff --git a/dimensionhub/dimensionhubApp.swift b/dimensionhub/dimensionhubApp.swift index 66fc8df..936db38 100644 --- a/dimensionhub/dimensionhubApp.swift +++ b/dimensionhub/dimensionhubApp.swift @@ -173,9 +173,19 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD // MARK: 消息处理 private func handleRemoteNotification(userInfo: [AnyHashable: Any]) { - if let customData = userInfo["custom_data"] as? [String: AnyObject], - let dramaId = customData["drama_id"] as? Int { - AppNavigation.shared.append(dest: .detail(id: dramaId)) + guard let customData = userInfo["custom_data"] as? [String: AnyObject], + let target = customData["target"] as? String, + let params = customData["params"] as? [String : AnyObject] else { + return + } + + switch target { + case "detail": + if let dramaId = params["drama_id"] as? Int { + AppNavigation.shared.append(dest: .detail(id: dramaId)) + } + default: + () } }