From 94e047a0e91699102f56cf9438a60f4863cfff3b Mon Sep 17 00:00:00 2001 From: zeng Date: Thu, 8 May 2025 18:51:12 +0800 Subject: [PATCH] =?UTF-8?q?W2A=E5=BC=80=E5=8F=91=EF=BC=8C=E5=90=84?= =?UTF-8?q?=E7=A7=8D=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MoviaBox/AppDelegate/AppDelegate+APNS.swift | 15 ++- .../AppDelegate/AppDelegate+OpenApp.swift | 58 ++++++++++- .../AppDelegate/AppDelegate+Thirdparty.swift | 2 +- MoviaBox/AppDelegate/SceneDelegate.swift | 21 +++- MoviaBox/Base/Extension/String+SPAdd.swift | 19 ++++ MoviaBox/Base/Extension/UIColor+SPAdd.swift | 8 ++ MoviaBox/Base/Model/SPOpenAppModel.swift | 17 ++++ MoviaBox/Base/Networking/API/SPStatAPI.swift | 75 ++++++++++++++ .../Base/SPNetworkReachabilityManager.swift | 8 +- .../Controller/SPHomeViewController.swift | 58 ++++++++--- .../Class/Home/View/SPHomeHeaderView.swift | 24 +++-- .../Home/View/SPSearchAssociativeView.swift | 1 + .../Home/ViewModel/SPHomeViewModel.swift | 9 ++ .../SPCollectListViewController.swift | 6 +- .../Controller/SPMyListViewController.swift | 43 ++++++++ .../SPPlayHistoryViewController.swift | 8 +- .../SPPlayerDetailViewController.swift | 2 + .../SPCoinOrderRecordViewController.swift | 6 +- .../SPConsumptionRecordsViewController.swift | 6 +- .../SPRewardCoinsViewController.swift | 6 +- .../SPVIPOrderRecordViewController.swift | 6 +- MoviaBox/Libs/Empty/SPEmptyState.swift | 92 ------------------ .../Libs/Empty/SPNoNetworkEmptyView.swift | 90 +++++++++++++++++ MoviaBox/Libs/Empty/UIScrollView+Empty.swift | 41 ++++++-- MoviaBox/MoviaBox.entitlements | 2 +- .../empty_image_02.imageset/Contents.json | 22 +++++ .../empty_image_02.imageset/image 38@2x.png | Bin 0 -> 42062 bytes .../empty_image_02.imageset/image 38@3x.png | Bin 0 -> 69004 bytes .../empty_image_03.imageset/Contents.json | 22 +++++ .../empty_image_03.imageset/Group@2x.png | Bin 0 -> 11709 bytes .../empty_image_03.imageset/Group@3x.png | Bin 0 -> 17262 bytes MoviaBox/Source/Info.plist | 2 +- MoviaBox/Source/en.lproj/Localizable.strings | 2 + .../Classes/JYScrollView.swift | 2 +- Podfile | 2 +- Podfile.lock | 10 +- .../build-request.json | 27 +++++ .../description.msgpack | Bin 0 -> 256 bytes .../manifest.json | 1 + .../target-graph.txt | 1 + .../task-store.msgpack | Bin 0 -> 79 bytes 证书秘钥/内购/SubscriptionKey_9TBBMA3N28.p8 | 6 ++ .../内购/SubscriptionKey_B4LXRNN96J-秘钥2.p8 | 6 ++ 证书秘钥/内购/秘钥.txt | 2 + 证书秘钥/团队秘钥/AuthKey_J5BTYX2VYL.p8 | 6 ++ 证书秘钥/推送证书/AuthKey_RR837V244H.p8 | 6 ++ 证书秘钥/推送证书/GoogleService-Info.plist | 30 ++++++ 47 files changed, 602 insertions(+), 168 deletions(-) create mode 100644 MoviaBox/Base/Model/SPOpenAppModel.swift create mode 100644 MoviaBox/Base/Networking/API/SPStatAPI.swift delete mode 100644 MoviaBox/Libs/Empty/SPEmptyState.swift create mode 100644 MoviaBox/Libs/Empty/SPNoNetworkEmptyView.swift create mode 100644 MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/Contents.json create mode 100644 MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/image 38@2x.png create mode 100644 MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/image 38@3x.png create mode 100644 MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Contents.json create mode 100644 MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Group@2x.png create mode 100644 MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Group@3x.png create mode 100644 build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/build-request.json create mode 100644 build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/description.msgpack create mode 100644 build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/manifest.json create mode 100644 build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/target-graph.txt create mode 100644 build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/task-store.msgpack create mode 100644 证书秘钥/内购/SubscriptionKey_9TBBMA3N28.p8 create mode 100644 证书秘钥/内购/SubscriptionKey_B4LXRNN96J-秘钥2.p8 create mode 100644 证书秘钥/内购/秘钥.txt create mode 100644 证书秘钥/团队秘钥/AuthKey_J5BTYX2VYL.p8 create mode 100644 证书秘钥/推送证书/AuthKey_RR837V244H.p8 create mode 100644 证书秘钥/推送证书/GoogleService-Info.plist diff --git a/MoviaBox/AppDelegate/AppDelegate+APNS.swift b/MoviaBox/AppDelegate/AppDelegate+APNS.swift index e492832..1902ed5 100644 --- a/MoviaBox/AppDelegate/AppDelegate+APNS.swift +++ b/MoviaBox/AppDelegate/AppDelegate+APNS.swift @@ -45,9 +45,20 @@ extension AppDelegate: UNUserNotificationCenterDelegate { UIApplication.shared.applicationIconBadgeNumber = 0 } - let userInfo = response.notification.request.content.userInfo + guard let userInfo: [String : Any] = response.notification.request.content.userInfo as? [String : Any] else { + completionHandler() + return + } - if let shortPlayId = userInfo["short_play_id"] as? String { + guard let model = SPOpenAppModel.deserialize(from: userInfo) else { + completionHandler() + return + } + SPStatAPI.requestStatApns(messageId: model.message_id ?? "", title: response.notification.request.content.title) + + + if let shortPlayId = model.short_play_id { + let vc = SPPlayerDetailViewController() vc.shortPlayId = shortPlayId SPAPPTool.topViewController()?.navigationController?.pushViewController(vc, animated: true) diff --git a/MoviaBox/AppDelegate/AppDelegate+OpenApp.swift b/MoviaBox/AppDelegate/AppDelegate+OpenApp.swift index 09f2b84..b6464b8 100644 --- a/MoviaBox/AppDelegate/AppDelegate+OpenApp.swift +++ b/MoviaBox/AppDelegate/AppDelegate+OpenApp.swift @@ -30,9 +30,61 @@ extension SceneDelegate { func scene(_ scene: UIScene, continue userActivity: NSUserActivity) { guard let webpageURL = userActivity.webpageURL else { return } - guard let query = webpageURL.query else { return } - - spLog(message: query) + handleOpenAppMessage(webpageURL: webpageURL) + } + +} + + +extension SceneDelegate { + static var hasOpenMessage = false + + func handleOpenAppMessage(webpageURL: URL?) { + + //统计用URL + var statUrlStr: String? + var data: [String : Any]? + + if let pasteStr = UIPasteboard.general.string { + UIPasteboard.general.string = nil + let tempArr = pasteStr.components(separatedBy: "?") + let query = tempArr.last + + let tempData = query?.urlQuryToDictionary() + if tempData?["short_play_id"] != nil { + data = tempData + statUrlStr = pasteStr + } + } + if Self.hasOpenMessage { + return + } + DispatchQueue.main.asyncAfter(deadline: .now() + 1) { + Self.hasOpenMessage = false + } + + Self.hasOpenMessage = true + + + if data == nil { + data = webpageURL?.query?.urlQuryToDictionary() + statUrlStr = webpageURL?.absoluteString + } + + if let urlStr = statUrlStr {//上报结果 + SPStatAPI.requestStatW2a(data: urlStr) + } + + + + guard let data = data else { return } + guard let model = SPOpenAppModel.deserialize(from: data) else { return } + guard let shortPlayId = model.short_play_id, shortPlayId.count > 0 else { return } + + + let vc = SPPlayerDetailViewController() + vc.shortPlayId = shortPlayId + SPAPPTool.topViewController()?.navigationController?.pushViewController(vc, animated: true) } } diff --git a/MoviaBox/AppDelegate/AppDelegate+Thirdparty.swift b/MoviaBox/AppDelegate/AppDelegate+Thirdparty.swift index 264aedc..4731c92 100644 --- a/MoviaBox/AppDelegate/AppDelegate+Thirdparty.swift +++ b/MoviaBox/AppDelegate/AppDelegate+Thirdparty.swift @@ -24,7 +24,7 @@ extension AppDelegate { private func registAdjust() { - let config = ADJConfig(appToken: "mtogye6pmha8", environment: ADJEnvironmentProduction) + let config = ADJConfig(appToken: "7z38v0rvceww", environment: ADJEnvironmentProduction) Adjust.initSdk(config) } diff --git a/MoviaBox/AppDelegate/SceneDelegate.swift b/MoviaBox/AppDelegate/SceneDelegate.swift index cf4ba27..3e5b33a 100644 --- a/MoviaBox/AppDelegate/SceneDelegate.swift +++ b/MoviaBox/AppDelegate/SceneDelegate.swift @@ -10,7 +10,8 @@ import UIKit class SceneDelegate: UIResponder, UIWindowSceneDelegate { var window: UIWindow? - + + private var timer: Timer? func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { guard let windowScene = (scene as? UIWindowScene) else { return } @@ -20,6 +21,13 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { window = UIWindow(windowScene: windowScene) window?.rootViewController = tabBarController window?.makeKeyAndVisible() + + if let webpageURL = session.stateRestorationActivity?.webpageURL { + handleOpenAppMessage(webpageURL: webpageURL) + } + + //在线状态统计 + timer = Timer.scheduledTimer(timeInterval: 60 * 10, target: self, selector: #selector(handleOnLine), userInfo: nil, repeats: true) } func sceneDidDisconnect(_ scene: UIScene) { @@ -32,6 +40,8 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { func sceneDidBecomeActive(_ scene: UIScene) { // Called when the scene has moved from an inactive state to an active state. // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + SPStatAPI.requestEnterApp() + handleOpenAppMessage(webpageURL: nil) } func sceneWillResignActive(_ scene: UIScene) { @@ -42,14 +52,23 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate { func sceneWillEnterForeground(_ scene: UIScene) { // Called as the scene transitions from the background to the foreground. // Use this method to undo the changes made on entering the background. + + } func sceneDidEnterBackground(_ scene: UIScene) { // Called as the scene transitions from the foreground to the background. // Use this method to save data, release shared resources, and store enough scene-specific state information // to restore the scene back to its current state. + SPStatAPI.requestLeaveApp() } } +extension SceneDelegate { + + @objc private func handleOnLine() { + SPStatAPI.requestStatOnLine() + } +} diff --git a/MoviaBox/Base/Extension/String+SPAdd.swift b/MoviaBox/Base/Extension/String+SPAdd.swift index 3667890..8a8ddf8 100644 --- a/MoviaBox/Base/Extension/String+SPAdd.swift +++ b/MoviaBox/Base/Extension/String+SPAdd.swift @@ -33,6 +33,25 @@ extension String: SmartCodable { } +extension String { + ///将url中的参数转换成字典 + func urlQuryToDictionary() -> [String : Any] { + let array = self.components(separatedBy: "&") + var tempDic: [String : Any] = [:] + + array.forEach { + if let strRange = $0.range(of: "=") { + var key: String = String($0.prefix(upTo: strRange.upperBound)) + key.removeLast() + var value: String = String($0.suffix(from: strRange.upperBound)) + value = value.removingPercentEncoding ?? value + tempDic[key] = value + } + } + return tempDic + } +} + extension String { ///获取文字Size func size(font: UIFont, size: CGSize = CGSize(width: CGFloat(MAXFLOAT), height: CGFloat(MAXFLOAT))) -> CGSize{ diff --git a/MoviaBox/Base/Extension/UIColor+SPAdd.swift b/MoviaBox/Base/Extension/UIColor+SPAdd.swift index 40b98d5..b204bda 100644 --- a/MoviaBox/Base/Extension/UIColor+SPAdd.swift +++ b/MoviaBox/Base/Extension/UIColor+SPAdd.swift @@ -388,5 +388,13 @@ extension UIColor { static func color362020(alpha: CGFloat = 1) -> UIColor { return color(hex: 0x362020, alpha: alpha) } + + static func color7A7F96(alpha: CGFloat = 1) -> UIColor { + return color(hex: 0x7A7F96, alpha: alpha) + } + + static func color967A7A(alpha: CGFloat = 1) -> UIColor { + return color(hex: 0x967A7A, alpha: alpha) + } } diff --git a/MoviaBox/Base/Model/SPOpenAppModel.swift b/MoviaBox/Base/Model/SPOpenAppModel.swift new file mode 100644 index 0000000..1cd246b --- /dev/null +++ b/MoviaBox/Base/Model/SPOpenAppModel.swift @@ -0,0 +1,17 @@ +// +// SPOpenAppModel.swift +// MoviaBox +// +// Created by 佳尔 on 2025/5/8. +// + +import UIKit +import SmartCodable + +class SPOpenAppModel: SPModel, SmartCodable { + + var id: String? + var message_id: String? + var short_play_id: String? + +} diff --git a/MoviaBox/Base/Networking/API/SPStatAPI.swift b/MoviaBox/Base/Networking/API/SPStatAPI.swift new file mode 100644 index 0000000..a4f0bf7 --- /dev/null +++ b/MoviaBox/Base/Networking/API/SPStatAPI.swift @@ -0,0 +1,75 @@ +// +// SPStatAPI.swift +// MoviaBox +// +// Created by 佳尔 on 2025/5/8. +// + +import UIKit + +///统计 +class SPStatAPI: NSObject { + + ///进入APP + static func requestEnterApp() { + + var param = SPNetworkParameters(path: "/customer/enterTheApp") + param.isToast = false + param.isLoding = false + + SPNetwork.request(parameters: param) { (response: SPNetworkResponse) in + + } + } + + ///离开APP + static func requestLeaveApp() { + var param = SPNetworkParameters(path: "/customer/leaveApp") + param.isToast = false + param.isLoding = false + + SPNetwork.request(parameters: param) { (response: SPNetworkResponse) in + + } + } + + ///在线状态统计 + static func requestStatOnLine() { + var param = SPNetworkParameters(path: "/customer/onLine") + param.isToast = false + param.isLoding = false + + SPNetwork.request(parameters: param) { (response: SPNetworkResponse) in + + } + } + + ///统计w2a点击 + static func requestStatW2a(data: String) { + var param = SPNetworkParameters(path: "/w2aSelfAttribution") + param.isToast = false + param.isLoding = false + param.parameters = [ + "data" : data + ] + + SPNetwork.request(parameters: param) { (response: SPNetworkResponse) in + + } + } + + ///统计点击推送消息 + static func requestStatApns(messageId: String, title: String) { + var param = SPNetworkParameters(path: "/message/sendReport") + param.isToast = false + param.isLoding = false + param.parameters = [ + "message_id" : messageId, + "title" : title + ] + + SPNetwork.request(parameters: param) { (response: SPNetworkResponse) in + + } + } +} diff --git a/MoviaBox/Base/Networking/Base/SPNetworkReachabilityManager.swift b/MoviaBox/Base/Networking/Base/SPNetworkReachabilityManager.swift index 1b04239..344106a 100644 --- a/MoviaBox/Base/Networking/Base/SPNetworkReachabilityManager.swift +++ b/MoviaBox/Base/Networking/Base/SPNetworkReachabilityManager.swift @@ -54,16 +54,20 @@ class SPNetworkReachabilityManager { if path.status == .satisfied { if self.isReachable == false { print("++++++有网") + self.isReachable = true NotificationCenter.default.post(name: SPNetworkReachabilityManager.reachabilityDidChangeNotification, object: nil) + } else { + self.isReachable = true } - self.isReachable = true } else { if self.isReachable == true { print("++++++无网") + self.isReachable = false NotificationCenter.default.post(name: SPNetworkReachabilityManager.reachabilityDidChangeNotification, object: nil) + } else { + self.isReachable = false } - self.isReachable = false } // if path.usesInterfaceType(.wifi) { diff --git a/MoviaBox/Class/Home/Controller/SPHomeViewController.swift b/MoviaBox/Class/Home/Controller/SPHomeViewController.swift index 9ef122f..5039d71 100644 --- a/MoviaBox/Class/Home/Controller/SPHomeViewController.swift +++ b/MoviaBox/Class/Home/Controller/SPHomeViewController.swift @@ -12,8 +12,9 @@ class SPHomeViewController: SPHomeChildController { private lazy var viewModel: SPHomeViewModel = SPHomeViewModel() - private lazy var page = 1 - private lazy var dataArr: [SPShortModel] = [] + + + private lazy var requestGroup = DispatchGroup() //MARK: UI属性 private lazy var logoImageView: UIImageView = { @@ -64,6 +65,7 @@ class SPHomeViewController: SPHomeChildController { updateAllData(completer: nil) +// updateEmptyState() _setupUI() @@ -89,7 +91,7 @@ class SPHomeViewController: SPHomeChildController { } override func handleFooterRefresh(_ completer: (() -> Void)?) { - requestListDataArr(page: self.page + 1) { [weak self] in + requestListDataArr(page: self.viewModel.page + 1) { [weak self] in self?.collectionView.sp_endFooterRefreshing() } } @@ -135,6 +137,18 @@ extension SPHomeViewController { updateAllData(completer: nil) } } + ///更新空白页面状态 + private func updateEmptyState() { + + if SPNetworkReachabilityManager.manager.isReachable != true, viewModel.isEmptyData { + self.collectionView.showNoNetworkEmpty { [weak self] in + self?.updateAllData(completer: nil) + } + } else { + self.collectionView.hiddenEmpty() + } + + } } @@ -143,13 +157,13 @@ extension SPHomeViewController: UICollectionViewDelegate, UICollectionViewDataSo func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = SPHomeShortCell.dequeueReusableCell(collectionView: collectionView, indexPath: indexPath) - cell.model = dataArr[indexPath.row] + cell.model = viewModel.dataArr[indexPath.row] return cell } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { - return dataArr.count + return viewModel.dataArr.count } func collectionView(_ collectionView: UICollectionView, viewForSupplementaryElementOfKind kind: String, at indexPath: IndexPath) -> UICollectionReusableView { @@ -161,7 +175,7 @@ extension SPHomeViewController: UICollectionViewDelegate, UICollectionViewDataSo } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - let model = self.dataArr[indexPath.row] + let model = viewModel.dataArr[indexPath.row] let vc = SPPlayerDetailViewController() vc.shortPlayId = model.short_play_id @@ -174,14 +188,25 @@ extension SPHomeViewController: UICollectionViewDelegate, UICollectionViewDataSo extension SPHomeViewController { private func updateAllData(completer: (() -> Void)?) { - requestModuleData() - requestPlayHistory() - requestListDataArr(page: 1) { + self.requestGroup.enter() + requestModuleData { [weak self] in + self?.requestGroup.leave() + } + self.requestGroup.enter() + requestPlayHistory { [weak self] in + self?.requestGroup.leave() + } + self.requestGroup.enter() + requestListDataArr(page: 1) { [weak self] in + self?.requestGroup.leave() + } + + self.requestGroup.notify(queue: DispatchQueue.main) { completer?() } } - private func requestModuleData() { + private func requestModuleData(completer: (() -> Void)? = nil) { SPHomeAPI.requestHomeModuleData { [weak self] model in guard let self = self else { return } if let model = model { @@ -190,11 +215,13 @@ extension SPHomeViewController { self.layout.headerReferenceSize = CGSize(width: kSPScreenWidth, height: SPHomeHeaderView.contentHeight(viewModel: self.viewModel)) self.collectionView.reloadData() } + self.updateEmptyState() + completer?() } } ///获取播放记录 - private func requestPlayHistory() { + private func requestPlayHistory(completer: (() -> Void)? = nil) { SPVideoAPI.requestPlayHistoryList(page: 1) { [weak self] listModel in guard let self = self else { return } if let list = listModel?.list { @@ -202,6 +229,8 @@ extension SPHomeViewController { self.layout.headerReferenceSize = CGSize(width: kSPScreenWidth, height: SPHomeHeaderView.contentHeight(viewModel: self.viewModel)) self.collectionView.reloadData() } + self.updateEmptyState() + completer?() } } @@ -212,13 +241,14 @@ extension SPHomeViewController { if let list = listModel?.list { if page == 1 { - self.dataArr.removeAll() + self.viewModel.dataArr.removeAll() } - self.dataArr += list + self.viewModel.dataArr += list self.collectionView.reloadData() - self.page = page + self.viewModel.page = page } + self.updateEmptyState() completer?() } } diff --git a/MoviaBox/Class/Home/View/SPHomeHeaderView.swift b/MoviaBox/Class/Home/View/SPHomeHeaderView.swift index 5592ba7..f56cd87 100644 --- a/MoviaBox/Class/Home/View/SPHomeHeaderView.swift +++ b/MoviaBox/Class/Home/View/SPHomeHeaderView.swift @@ -18,8 +18,11 @@ class SPHomeHeaderView: UICollectionReusableView { stackView.removeAllArrangedSubview() - stackView.addArrangedSubview(bannerView) - bannerView.reloadData() + + if let bannerData = moduleModel?.bannerData, bannerData.count > 0 { + stackView.addArrangedSubview(bannerView) + bannerView.reloadData() + } if let historyList = viewModel?.playHistoryArr, historyList.count > 0 { stackView.addArrangedSubview(playHistoryView) @@ -200,18 +203,27 @@ extension SPHomeHeaderView: ZKCycleScrollViewDelegate, ZKCycleScrollViewDataSour extension SPHomeHeaderView { static func contentHeight(viewModel: SPHomeViewModel) -> CGFloat { - var height = bannerHeight() + var height: CGFloat = 0 let moduleModel = viewModel.moduleModel + if let bannerData = moduleModel?.bannerData, bannerData.count > 0 { + height = height + bannerHeight() + } + ///历史记录 if let historyList = viewModel.playHistoryArr, historyList.count > 0 { - height = height + SPHomePlayHistoryView.contentHeight(dataArr: historyList) + 25 + if height > 0 { + height = height + 25 + } + height = height + SPHomePlayHistoryView.contentHeight(dataArr: historyList) } - ///九宫格数据 if let list = moduleModel?.nineSquare?.list, list.count > 0 { - height = height + SPHomeExploreView.contentHeight(dataArr: list) + 25 + if height > 0 { + height = height + 25 + } + height = height + SPHomeExploreView.contentHeight(dataArr: list) } // height = height + SPHomeTrendingView.contentHeight(dataArr: moduleModel?.bannerData ?? []) + 25 diff --git a/MoviaBox/Class/Home/View/SPSearchAssociativeView.swift b/MoviaBox/Class/Home/View/SPSearchAssociativeView.swift index 8c8a82b..d05295c 100644 --- a/MoviaBox/Class/Home/View/SPSearchAssociativeView.swift +++ b/MoviaBox/Class/Home/View/SPSearchAssociativeView.swift @@ -24,6 +24,7 @@ class SPSearchAssociativeView: UIView { tableView.separatorInset = .init(top: 0, left: 16, bottom: 0, right: 16) tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: kSPTabbarSafeBottomMargin, right: 0) tableView.keyboardDismissMode = .onDrag + tableView.showNormalEmpty(image: UIImage(named: "empty_image_03")) SPSearchAssociativeCell.registerCell(tableView: tableView) return tableView }() diff --git a/MoviaBox/Class/Home/ViewModel/SPHomeViewModel.swift b/MoviaBox/Class/Home/ViewModel/SPHomeViewModel.swift index a9e4db8..fbcc5ea 100644 --- a/MoviaBox/Class/Home/ViewModel/SPHomeViewModel.swift +++ b/MoviaBox/Class/Home/ViewModel/SPHomeViewModel.swift @@ -9,11 +9,20 @@ import UIKit class SPHomeViewModel: NSObject { + lazy var page = 1 + lazy var dataArr: [SPShortModel] = [] + var moduleModel: SPHomeModuleModel? ///历史记录 var playHistoryArr: [SPShortModel]? + var isEmptyData: Bool { + if dataArr.count > 0 || (playHistoryArr?.count ?? 0) > 0 || moduleModel != nil { + return false + } + return true + } } diff --git a/MoviaBox/Class/MyList/Controller/SPCollectListViewController.swift b/MoviaBox/Class/MyList/Controller/SPCollectListViewController.swift index 4a5c3b4..4076ac7 100644 --- a/MoviaBox/Class/MyList/Controller/SPCollectListViewController.swift +++ b/MoviaBox/Class/MyList/Controller/SPCollectListViewController.swift @@ -34,6 +34,7 @@ class SPCollectListViewController: SPMyListChildViewController { collectionView.delegate = self collectionView.dataSource = self collectionView.contentInset = .init(top: 10, left: 0, bottom: 0, right: 0) + collectionView.showNormalEmpty() collectionView.sp_addRefreshHeader(insetTop: collectionView.contentInset.top) { [weak self] in self?.handleHeaderRefresh(nil) } @@ -148,11 +149,6 @@ extension SPCollectListViewController: UICollectionViewDelegate, UICollectionVie func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { let count = self.dataArr.count - if count == 0 { - self.collectionView.addNormalEmpty() - } else { - self.collectionView.hiddenEmpty() - } return count } diff --git a/MoviaBox/Class/MyList/Controller/SPMyListViewController.swift b/MoviaBox/Class/MyList/Controller/SPMyListViewController.swift index 440e607..2da6710 100644 --- a/MoviaBox/Class/MyList/Controller/SPMyListViewController.swift +++ b/MoviaBox/Class/MyList/Controller/SPMyListViewController.swift @@ -65,6 +65,13 @@ class SPMyListViewController: SPViewController { return pageView }() + private(set) lazy var wmPageView: WMPageController = { + let pageView = WMPageController() + pageView.delegate = self + pageView.dataSource = self + return pageView + }() + private lazy var editButton: UIButton = { let button = UIButton(type: .custom) button.setImage(UIImage(named: "delete_icon_01"), for: .normal) @@ -145,9 +152,11 @@ class SPMyListViewController: SPViewController { extension SPMyListViewController { private func _setupUI() { addChild(pageView) +// addChild(self.wmPageView) view.addSubview(lineView) view.addSubview(pageView.view) +// view.addSubview(wmPageView.view) view.addSubview(editButton) view.addSubview(cancelButton) // view.addSubview(allSelectedButton) @@ -182,6 +191,40 @@ extension SPMyListViewController { } } +//MARK: -------------- WMPageControllerDelegate & WMPageControllerDataSource -------------- +extension SPMyListViewController: WMPageControllerDelegate, WMPageControllerDataSource { + + func pageController(_ pageController: WMPageController, preferredFrameForContentView contentView: WMScrollView) -> CGRect { + let y = kSPStatusbarHeight + 10 + 35 + return .init(x: 0, y: kSPStatusbarHeight + 10 + 35, width: kSPScreenWidth, height: kSPScreenHeight - y - kSPTabBarHeight) + } + + func pageController(_ pageController: WMPageController, preferredFrameFor menuView: WMMenuView) -> CGRect { + return .init(x: 0, y: kSPStatusbarHeight + 10, width: kSPScreenWidth, height: 35) + } + + func numbersOfChildControllers(in pageController: WMPageController) -> Int { + return titles.count + } + + func pageController(_ pageController: WMPageController, titleAt index: Int) -> String { + return titles[index] + } + + func pageController(_ pageController: WMPageController, viewControllerAt index: Int) -> UIViewController { + self.viewControllers[index] + } + + func pageController(_ pageController: WMPageController, didEnter viewController: UIViewController, withInfo info: [AnyHashable : Any]) { + if pageController.selectIndex == 0 { + self.editButton.isHidden = false + } else { + self.editButton.isHidden = true + } + } + +} + //MARK: -------------- JYPageControllerDelegate & JYPageControllerDataSource -------------- extension SPMyListViewController: JYPageControllerDelegate, JYPageControllerDataSource { diff --git a/MoviaBox/Class/MyList/Controller/SPPlayHistoryViewController.swift b/MoviaBox/Class/MyList/Controller/SPPlayHistoryViewController.swift index 19dd608..341c96f 100644 --- a/MoviaBox/Class/MyList/Controller/SPPlayHistoryViewController.swift +++ b/MoviaBox/Class/MyList/Controller/SPPlayHistoryViewController.swift @@ -32,6 +32,7 @@ class SPPlayHistoryViewController: SPMyListChildViewController { let collectionView = SPCollectionView(frame: .zero, collectionViewLayout: collectionViewLayout) collectionView.delegate = self collectionView.dataSource = self + collectionView.showNormalEmpty() collectionView.contentInset = .init(top: 10, left: 0, bottom: 0, right: 0) collectionView.sp_addRefreshHeader(insetTop: collectionView.contentInset.top) { [weak self] in self?.handleHeaderRefresh(nil) @@ -143,13 +144,6 @@ extension SPPlayHistoryViewController: UICollectionViewDelegate, UICollectionVie func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { let count = self.dataArr.count - - if count == 0 { - self.collectionView.addNormalEmpty() - } else { - self.collectionView.hiddenEmpty() - } - return count } diff --git a/MoviaBox/Class/Player/Controller/SPPlayerDetailViewController.swift b/MoviaBox/Class/Player/Controller/SPPlayerDetailViewController.swift index b53aab5..9300174 100644 --- a/MoviaBox/Class/Player/Controller/SPPlayerDetailViewController.swift +++ b/MoviaBox/Class/Player/Controller/SPPlayerDetailViewController.swift @@ -198,6 +198,8 @@ extension SPPlayerDetailViewController { guard let self = self else { return } self.play() } + //更新用户信息 + SPLoginManager.manager.updateUserInfo(completer: nil) default: break diff --git a/MoviaBox/Class/Wallet/Controller/SPCoinOrderRecordViewController.swift b/MoviaBox/Class/Wallet/Controller/SPCoinOrderRecordViewController.swift index deea27a..e14a96d 100644 --- a/MoviaBox/Class/Wallet/Controller/SPCoinOrderRecordViewController.swift +++ b/MoviaBox/Class/Wallet/Controller/SPCoinOrderRecordViewController.swift @@ -19,6 +19,7 @@ class SPCoinOrderRecordViewController: SPViewController { tableView.delegate = self tableView.dataSource = self tableView.rowHeight = 70 + tableView.showNormalEmpty() tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: kSPTabbarSafeBottomMargin, right: 0) tableView.sp_addRefreshHeader { [weak self] in self?.handleHeaderRefresh(nil) @@ -76,11 +77,6 @@ extension SPCoinOrderRecordViewController: UITableViewDelegate, UITableViewDataS func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { let count = self.dataArr.count - if count == 0 { - self.tableView.addNormalEmpty() - } else { - self.tableView.hiddenEmpty() - } return count } diff --git a/MoviaBox/Class/Wallet/Controller/SPConsumptionRecordsViewController.swift b/MoviaBox/Class/Wallet/Controller/SPConsumptionRecordsViewController.swift index 39dd8a6..33b677e 100644 --- a/MoviaBox/Class/Wallet/Controller/SPConsumptionRecordsViewController.swift +++ b/MoviaBox/Class/Wallet/Controller/SPConsumptionRecordsViewController.swift @@ -19,6 +19,7 @@ class SPConsumptionRecordsViewController: SPViewController { tableView.delegate = self tableView.dataSource = self tableView.rowHeight = 72 + tableView.showNormalEmpty() tableView.separatorInset = .init(top: 0, left: 32, bottom: 0, right: 32) tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: kSPTabbarSafeBottomMargin, right: 0) tableView.sp_addRefreshHeader { [weak self] in @@ -82,11 +83,6 @@ extension SPConsumptionRecordsViewController: UITableViewDelegate, UITableViewDa func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { let count = self.dataArr.count - if count == 0 { - self.tableView.addNormalEmpty() - } else { - self.tableView.hiddenEmpty() - } return count } } diff --git a/MoviaBox/Class/Wallet/Controller/SPRewardCoinsViewController.swift b/MoviaBox/Class/Wallet/Controller/SPRewardCoinsViewController.swift index 60da69e..75b687e 100644 --- a/MoviaBox/Class/Wallet/Controller/SPRewardCoinsViewController.swift +++ b/MoviaBox/Class/Wallet/Controller/SPRewardCoinsViewController.swift @@ -19,6 +19,7 @@ class SPRewardCoinsViewController: SPViewController { tableView.delegate = self tableView.dataSource = self tableView.rowHeight = 96 + tableView.showNormalEmpty() tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: kSPTabbarSafeBottomMargin, right: 0) tableView.sp_addRefreshHeader { [weak self] in self?.handleHeaderRefresh(nil) @@ -84,11 +85,6 @@ extension SPRewardCoinsViewController: UITableViewDelegate, UITableViewDataSourc func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { let count = self.dataArr.count - if count == 0 { - self.tableView.addNormalEmpty() - } else { - self.tableView.hiddenEmpty() - } return count } } diff --git a/MoviaBox/Class/Wallet/Controller/SPVIPOrderRecordViewController.swift b/MoviaBox/Class/Wallet/Controller/SPVIPOrderRecordViewController.swift index 54abeae..b131b0f 100644 --- a/MoviaBox/Class/Wallet/Controller/SPVIPOrderRecordViewController.swift +++ b/MoviaBox/Class/Wallet/Controller/SPVIPOrderRecordViewController.swift @@ -18,6 +18,7 @@ class SPVIPOrderRecordViewController: SPViewController { tableView.delegate = self tableView.dataSource = self tableView.rowHeight = 74 + tableView.showNormalEmpty() tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: kSPTabbarSafeBottomMargin, right: 0) tableView.sp_addRefreshHeader { [weak self] in self?.handleHeaderRefresh(nil) @@ -75,11 +76,6 @@ extension SPVIPOrderRecordViewController: UITableViewDelegate, UITableViewDataSo func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { let count = self.dataArr.count - if count == 0 { - self.tableView.addNormalEmpty() - } else { - self.tableView.hiddenEmpty() - } return count } diff --git a/MoviaBox/Libs/Empty/SPEmptyState.swift b/MoviaBox/Libs/Empty/SPEmptyState.swift deleted file mode 100644 index 56b43f6..0000000 --- a/MoviaBox/Libs/Empty/SPEmptyState.swift +++ /dev/null @@ -1,92 +0,0 @@ -// -// SPEmptyState.swift -// MoviaBox -// -// Created by Overseas on 2025/4/19. -// - -import UIKit -import EmptyStateKit - -struct SPEmptyParameters { -// var title: String = "暂无内容" -// var titleFont: UIFont = UIFont.text_md -// var titleColor: UIColor = UIColor.system_text_secondary_300 - var image: UIImage? = UIImage(named: "empty_image_01") -// var buttonTitle: String? -} - -enum SPEmptyState { - case normail(parameters: SPEmptyParameters) -} - -extension SPEmptyState: CustomState { - - var image: UIImage? { - switch self { - case .normail(let parameters): - return parameters.image - - - } - } - - var title: String? { - switch self { - case .normail(_): - return nil - - } - } - -// var titleButton: String? { -// switch self { -// case .normail(let parameters): -// return parameters.buttonTitle -// } - -} - -extension SPEmptyState { - var format: EmptyStateFormat { - - var format = EmptyStateFormat() - format.backgroundColor = .clear - format.imageSize = self.image?.size ?? .zero - format.animation = nil - format.verticalMargin = -50 -// -// format.buttonWidth = 107 -// format.buttonTopMargin = 10 -// format.buttonColor = .system_fill_primary_100 -// format.buttonAttributes = [ -// .font: UIFont.text_md, -// .foregroundColor: UIColor.system_text_secondary_500 -// ] -// -// switch self { -// case .normail(let p): -// format.titleAttributes = [ -// .font: p.titleFont, -// .foregroundColor: p.titleColor -// ] -// -// -// case .login(let p): -// format.titleAttributes = [ -// .font: p.titleFont, -// .foregroundColor: p.titleColor -// ] -// -// -// } - - - - - return format - } -} - - - diff --git a/MoviaBox/Libs/Empty/SPNoNetworkEmptyView.swift b/MoviaBox/Libs/Empty/SPNoNetworkEmptyView.swift new file mode 100644 index 0000000..3cb7df9 --- /dev/null +++ b/MoviaBox/Libs/Empty/SPNoNetworkEmptyView.swift @@ -0,0 +1,90 @@ +// +// SPNoNetworkEmptyView.swift +// MoviaBox +// +// Created by 佳尔 on 2025/5/8. +// + +import UIKit + +class SPNoNetworkEmptyView: UIView { + + + override var intrinsicContentSize: CGSize { + return CGSize(width: kSPScreenWidth, height: 100) + } + + var clickButton: (() -> Void)? + + //MARK: UI属性 + private lazy var iconImageView: UIImageView = { + let imageView = UIImageView(image: UIImage(named: "empty_image_02")) + return imageView + }() + + private lazy var titleLabel: UILabel = { + let label = UILabel() + label.font = .fontRegular(ofSize: 16) + label.textColor = .color967A7A() + label.text = "kNoNetworkTip_01".localized + return label + }() + + private lazy var button: UIButton = { + let button = JXButton(type: .custom) + button.layer.cornerRadius = 17 + button.layer.masksToBounds = true + button.layer.borderWidth = 1 + button.layer.borderColor = UIColor.colorFFFFFF().cgColor + button.jx_font = .fontRegular(ofSize: 18) + button.setTitleColor(.colorFFFFFF(), for: .normal) + button.setTitle("Retry".localized, for: .normal) + button.leftAndRightMargin = 33 + button.addTarget(self, action: #selector(handleButton), for: .touchUpInside) + return button + }() + + override init(frame: CGRect) { + super.init(frame: frame) + _setupUI() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + @objc private func handleButton() { + self.clickButton?() + } + +} + +extension SPNoNetworkEmptyView { + + private func _setupUI() { + addSubview(iconImageView) + addSubview(titleLabel) + addSubview(button) + + iconImageView.snp.makeConstraints { make in + make.top.equalToSuperview() + make.centerX.equalToSuperview() + } + + titleLabel.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.top.equalTo(iconImageView.snp.bottom) + } + + button.snp.makeConstraints { make in + make.centerX.equalToSuperview() + make.top.equalTo(titleLabel.snp.bottom).offset(28) + make.height.equalTo(34) + make.bottom.equalToSuperview() + } + + + } + + +} diff --git a/MoviaBox/Libs/Empty/UIScrollView+Empty.swift b/MoviaBox/Libs/Empty/UIScrollView+Empty.swift index de4e7c3..370beed 100644 --- a/MoviaBox/Libs/Empty/UIScrollView+Empty.swift +++ b/MoviaBox/Libs/Empty/UIScrollView+Empty.swift @@ -6,18 +6,47 @@ // import UIKit +import EmptyDataSet_Swift extension UIScrollView { - func addNormalEmpty() { - let parameters = SPEmptyParameters() - let emptyState = SPEmptyState.normail(parameters: parameters) - self.emptyState.format = emptyState.format - self.emptyState.show(emptyState) + ///展示一个普通的空白页 + func showNormalEmpty(image: UIImage? = UIImage(named: "empty_image_01"), title: String? = nil, titleColor: UIColor? = nil) { + + self.emptyDataSetView { view in + view.image(image) + .isScrollAllowed(true) + .verticalOffset(-100) + } } + ///展示一个无网的空白页 + func showNoNetworkEmpty(buttonHandle: (() -> Void)? = nil) { + + let customView = SPNoNetworkEmptyView() + customView.clickButton = { + buttonHandle?() + } + + self.emptyDataSetView { view in + view.isScrollAllowed(true) + .customView(customView) + .verticalOffset(-70) + } + + self.reloadEmptyDataSet() + } + + + func hiddenEmpty() { - self.emptyState.hide() + + self.emptyDataSetView { view in + view.customView(nil) + view.image(nil) + view.titleLabelString(nil) + } + self.reloadEmptyDataSet() } } diff --git a/MoviaBox/MoviaBox.entitlements b/MoviaBox/MoviaBox.entitlements index 948cd23..c3f2102 100644 --- a/MoviaBox/MoviaBox.entitlements +++ b/MoviaBox/MoviaBox.entitlements @@ -10,7 +10,7 @@ com.apple.developer.associated-domains - applinks:moviaboxapp.go.link + applinks:moviaapp.go.link applinks:www.moviatv.com keychain-access-groups diff --git a/MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/Contents.json b/MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/Contents.json new file mode 100644 index 0000000..a2f99d5 --- /dev/null +++ b/MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "image 38@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "image 38@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/image 38@2x.png b/MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/image 38@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..1affab3c107c87beb369e98d034f9313b6a7fb72 GIT binary patch literal 42062 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 literal 0 HcmV?d00001 diff --git a/MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/image 38@3x.png b/MoviaBox/Source/Assets.xcassets/image/empty_image_02.imageset/image 38@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..38dba3d33723ede7414ba7a3bd938e3a9d96a56f GIT binary patch literal 69004 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%0Dr94>^xPUMM0I?;`5HA$nKIu_h?Ar@27deF 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 literal 0 HcmV?d00001 diff --git a/MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Contents.json b/MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Contents.json new file mode 100644 index 0000000..432df22 --- /dev/null +++ b/MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Group@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "Group@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Group@2x.png b/MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Group@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..966bbc48fa283a056decf494e77a34cd3687417d GIT binary patch literal 11709 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 literal 0 HcmV?d00001 diff --git a/MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Group@3x.png b/MoviaBox/Source/Assets.xcassets/image/empty_image_03.imageset/Group@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..a79237eff34717abbdf9ef502daa80072fb81717 GIT binary patch literal 17262 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 CFBundleURLSchemes - MoviaTV + moviaapp diff --git a/MoviaBox/Source/en.lproj/Localizable.strings b/MoviaBox/Source/en.lproj/Localizable.strings index 485ec85..67ada5a 100644 --- a/MoviaBox/Source/en.lproj/Localizable.strings +++ b/MoviaBox/Source/en.lproj/Localizable.strings @@ -92,6 +92,7 @@ "Unlock now for" = "Unlock now for"; "Unlock the previous episode" = "Unlock the previous episode"; "Purchase Single Episode" = "Purchase Single Episode"; +"Retry" = "Retry"; ///没有可恢复购买 "kToastMessage_01" = "There are no recoverable in-app purchases."; @@ -109,4 +110,5 @@ "kStoreTipTitle" = "Related terms and conditions:"; "kStoreTipText" = "1. Coins can only be used within this application.
2. Payment: The purchase will be charged to your iTunes account. 
3. Renewal: Your Apple iTunes account will be charged within 24 hours before the expiration and the subscription period will be extended for another subscription cycle upon successful deduction.
4. Cancellation: To cancel the subscription renewal, please turn off the automatic renewal function in the iTunes/Apple ID settings at least 24 hours before the current subscription period expires. If canceled within the last 24 hours before expiration, a subscription fee will still be charged. 
5. Payment successful but recharge not taking effect for an extended period? Click here to refresh or send an email to: cs.jiaer.developer@icloud.com. 
6. Manage your subscriptions: You can view, change, or cancel your subscriptions. "; "kDeleteAccountCheckText" = "I accept the deletion risk and agree to delete my account"; +"kNoNetworkTip_01" = "Connection error. Please try again!"; diff --git a/MoviaBox/Thirdparty/JYPageController/Classes/JYScrollView.swift b/MoviaBox/Thirdparty/JYPageController/Classes/JYScrollView.swift index f87c599..e787c43 100644 --- a/MoviaBox/Thirdparty/JYPageController/Classes/JYScrollView.swift +++ b/MoviaBox/Thirdparty/JYPageController/Classes/JYScrollView.swift @@ -7,7 +7,7 @@ import UIKit -public class JYScrollView: UITableView,UIGestureRecognizerDelegate { +public class JYScrollView: UITableView { public func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { return gestureRecognizer.isKind(of: UIPanGestureRecognizer.classForCoder()) && otherGestureRecognizer.isKind(of: UIPanGestureRecognizer.classForCoder()) diff --git a/Podfile b/Podfile index 6ef15fa..97bfe72 100644 --- a/Podfile +++ b/Podfile @@ -26,7 +26,7 @@ target 'MoviaBox' do pod 'KTVHTTPCache' #视频缓存 pod 'HWPanModal' #底部弹出控制器 pod 'Kingfisher' #图片加载 - pod 'EmptyStateKit' #空数据页面 + pod 'EmptyDataSet-Swift' #空数据页面 pod 'ReachabilitySwift' #网络状态监控 pod 'WMZPageController' #分页控制器 pod 'SVProgressHUD' #HUD diff --git a/Podfile.lock b/Podfile.lock index e67bdc4..6fd758e 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -6,7 +6,7 @@ PODS: - AdjustSignature (3.35.2) - Alamofire (5.10.2) - CocoaAsyncSocket (7.6.5) - - EmptyStateKit (1.1.0) + - EmptyDataSet-Swift (5.0.0) - HWPanModal (0.9.9) - Kingfisher (8.3.2) - KTVHTTPCache (3.0.2): @@ -38,7 +38,7 @@ PODS: DEPENDENCIES: - Adjust - - EmptyStateKit + - EmptyDataSet-Swift - HWPanModal - Kingfisher - KTVHTTPCache @@ -58,12 +58,12 @@ SPEC REPOS: https://github.com/CocoaPods/Specs.git: - Adjust - AdjustSignature + - EmptyDataSet-Swift - Kingfisher - ZFPlayer trunk: - Alamofire - CocoaAsyncSocket - - EmptyStateKit - HWPanModal - KTVHTTPCache - MJRefresh @@ -82,7 +82,7 @@ SPEC CHECKSUMS: AdjustSignature: 23b9e5d4adcadffc303bb6b410fde617dd88504f Alamofire: 7193b3b92c74a07f85569e1a6c4f4237291e7496 CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99 - EmptyStateKit: dc41e9ce5c6089f67a49d063bce73ade9f2ba73f + EmptyDataSet-Swift: eb382c0c87a2d9c678077385a595cec52da38171 HWPanModal: b57a6717d3cdcd666bff44f9dd2a5be9f4d6f5d2 Kingfisher: 0621d0ac0c78fecb19f6dc5303bde2b52abaf2f5 KTVHTTPCache: 5711692cdf9a5ecfe829b1e16577deb3ffe3dc86 @@ -98,6 +98,6 @@ SPEC CHECKSUMS: YYKit: 7cda43304a8dc3696c449041e2cb3107b4e236e7 ZFPlayer: 5cf39e8d9f0c2394a014b0db4767b5b5a6bffe13 -PODFILE CHECKSUM: 2a79f81260b8df4d6be58f4acb217732b1cd49ab +PODFILE CHECKSUM: 1e8174e48a7218cf3eed0a059ee987d0638ab131 COCOAPODS: 1.16.2 diff --git a/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/build-request.json b/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/build-request.json new file mode 100644 index 0000000..851be67 --- /dev/null +++ b/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/build-request.json @@ -0,0 +1,27 @@ +{ + "buildCommand" : { + "command" : "build", + "skipDependencies" : false, + "style" : "buildOnly" + }, + "configuredTargets" : [ + + ], + "continueBuildingAfterErrors" : false, + "dependencyScope" : "workspace", + "enableIndexBuildArena" : false, + "hideShellScriptEnvironment" : false, + "parameters" : { + "action" : "build", + "overrides" : { + + } + }, + "qos" : "default", + "schemeCommand" : "launch", + "showNonLoggedProgress" : true, + "useDryRun" : false, + "useImplicitDependencies" : false, + "useLegacyBuildLocations" : false, + "useParallelTargets" : true +} \ No newline at end of file diff --git a/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/description.msgpack b/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/description.msgpack new file mode 100644 index 0000000000000000000000000000000000000000..9a7c8386abe463aa7442405736bb2fefba90c10f GIT binary patch literal 256 zcmW-bK~BRk6ht`#C+G?Co!}-mJDP5hDj_6x=*Qnq-8yj;r)iftLO1{tD>wsN=p`z# zMB*AvnaxP^7W00tu1~k{7<3z8V^O!T)M4BC2L3+Ye?MR0Znc7Y-&&w6y0u$zWq fJkE&6Bos+u7%LLSwG@m=DYP"]},"commands":{"":{"tool":"phony","inputs":[""],"outputs":[""]},"P0:::Gate WorkspaceHeaderMapVFSFilesWritten":{"tool":"phony","inputs":[],"outputs":[""]}}} \ No newline at end of file diff --git a/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/target-graph.txt b/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/target-graph.txt new file mode 100644 index 0000000..b83b158 --- /dev/null +++ b/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/target-graph.txt @@ -0,0 +1 @@ +Target dependency graph (0 target) \ No newline at end of file diff --git a/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/task-store.msgpack b/build/XCBuildData/8524cc39f017101f2a0ad46f4fd68ba5.xcbuilddata/task-store.msgpack new file mode 100644 index 0000000000000000000000000000000000000000..6cef3fe35dc37f3eb3b88d5dc171a6a7189718d4 GIT binary patch literal 79 zcmbPuhe6^15KLO)o>-E4Q!zZhD7&~IF*(&EH8CZ%$TzVd%q`e0Gbgn;yePAzBsFir egb9--OjxLY_`rd~hbA1JFyX+V%M4I(=nw#{5hHQ{ literal 0 HcmV?d00001 diff --git a/证书秘钥/内购/SubscriptionKey_9TBBMA3N28.p8 b/证书秘钥/内购/SubscriptionKey_9TBBMA3N28.p8 new file mode 100644 index 0000000..0bbcc3e --- /dev/null +++ b/证书秘钥/内购/SubscriptionKey_9TBBMA3N28.p8 @@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgXR+Zedc3wF8TuJG6 +oDKxJbcDqDLJDEx/ExfQKT5GMc+gCgYIKoZIzj0DAQehRANCAASNWCeIL6ELCoVo +igAm8yXBuraOuuQdbPBmJnFwauYq3pFZt3RiTKZxXLs3TAHXuuK6jlUMNZ0SsyIf +epUu2+ms +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/证书秘钥/内购/SubscriptionKey_B4LXRNN96J-秘钥2.p8 b/证书秘钥/内购/SubscriptionKey_B4LXRNN96J-秘钥2.p8 new file mode 100644 index 0000000..0095683 --- /dev/null +++ b/证书秘钥/内购/SubscriptionKey_B4LXRNN96J-秘钥2.p8 @@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgIAZqlqn64s0g/cLK +HYv57T2s5WVllSrs6yyZeL0F1UegCgYIKoZIzj0DAQehRANCAATkoC81el02PBYY +0NtOiD6ZABY5yidgX7BLdfhIR4YABXRMHqgf5cC1wJeMFbuPimAhFyQUOjz4U3Pu +VYJ/uVUy +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/证书秘钥/内购/秘钥.txt b/证书秘钥/内购/秘钥.txt new file mode 100644 index 0000000..35326a5 --- /dev/null +++ b/证书秘钥/内购/秘钥.txt @@ -0,0 +1,2 @@ +Issuer ID:5a4eda78-a1ec-4e14-b9e1-438e0c6b65e0 +共享秘钥:ef592c2f58e544f7b64c9e8e3fbdd918 \ No newline at end of file diff --git a/证书秘钥/团队秘钥/AuthKey_J5BTYX2VYL.p8 b/证书秘钥/团队秘钥/AuthKey_J5BTYX2VYL.p8 new file mode 100644 index 0000000..5a139fc --- /dev/null +++ b/证书秘钥/团队秘钥/AuthKey_J5BTYX2VYL.p8 @@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgcGOb1W3PIj7aFHCV +gklnxGt7MUXIwO8NGjxmYugvNqygCgYIKoZIzj0DAQehRANCAAT4GJv/flDfYucP +klNWB0Gbl4SC8g1aRQWsjlH5ZhTRCADsQMchLv1hfLluggscZ9/mjooXqxeIa9dA +kCEe5BH5 +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/证书秘钥/推送证书/AuthKey_RR837V244H.p8 b/证书秘钥/推送证书/AuthKey_RR837V244H.p8 new file mode 100644 index 0000000..74b8770 --- /dev/null +++ b/证书秘钥/推送证书/AuthKey_RR837V244H.p8 @@ -0,0 +1,6 @@ +-----BEGIN PRIVATE KEY----- +MIGTAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBHkwdwIBAQQgybyT4E9RcVHpanWn +rWHRf50TR8iio6SZ2s2oploN4JegCgYIKoZIzj0DAQehRANCAAQ4gRcELlsyQecH +Czr4kIVXbrD9oOk/ibNsSq7QpHSHgs8T+Ev08miNqPc9fMxP9KkIVgTxdKNdVkXg +g7cByXj5 +-----END PRIVATE KEY----- \ No newline at end of file diff --git a/证书秘钥/推送证书/GoogleService-Info.plist b/证书秘钥/推送证书/GoogleService-Info.plist new file mode 100644 index 0000000..75c241b --- /dev/null +++ b/证书秘钥/推送证书/GoogleService-Info.plist @@ -0,0 +1,30 @@ + + + + + API_KEY + AIzaSyAT78NBZpoE2kazUeiWOBKuQNczOEtPPbU + GCM_SENDER_ID + 157639867903 + PLIST_VERSION + 1 + BUNDLE_ID + com.thimratv.app + PROJECT_ID + movia-c4ef0 + STORAGE_BUCKET + movia-c4ef0.firebasestorage.app + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:157639867903:ios:63bd57e22b7c906450fbca + + \ No newline at end of file