From e9c2b300d6396eadd0343fc6a048e8827d6dd90b Mon Sep 17 00:00:00 2001 From: zjx Date: Tue, 17 Jun 2025 14:43:34 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Base/WebView/VPWebViewController.swift | 4 +++ .../Class/Home/View/VPHomeBannerCell.swift | 10 ++++-- .../Home/View/VPHomePlayHistoricalView.swift | 5 ++- Veloria/Class/Player/View/VPEpisodeView.swift | 2 +- .../Controller/VPRewardsViewController.swift | 34 +++++++++++++++++++ 5 files changed, 51 insertions(+), 4 deletions(-) diff --git a/Veloria/Base/WebView/VPWebViewController.swift b/Veloria/Base/WebView/VPWebViewController.swift index c805ff1..453e143 100644 --- a/Veloria/Base/WebView/VPWebViewController.swift +++ b/Veloria/Base/WebView/VPWebViewController.swift @@ -78,6 +78,10 @@ extension VPWebViewController { //MARK: -------------- VPWebViewDelegate -------------- extension VPWebViewController: VPWebViewDelegate { + func webView(_ webView: VPWebView, shouldStartLoadWith navigationAction: WKNavigationAction) -> Bool { + return true + } + func webViewDidStartLoad(_ webView: VPWebView) { VPHUD.show(containerView: self.view) } diff --git a/Veloria/Class/Home/View/VPHomeBannerCell.swift b/Veloria/Class/Home/View/VPHomeBannerCell.swift index b878374..2c8d8d0 100644 --- a/Veloria/Class/Home/View/VPHomeBannerCell.swift +++ b/Veloria/Class/Home/View/VPHomeBannerCell.swift @@ -15,12 +15,18 @@ class VPHomeBannerCell: ZKCycleScrollViewCell { titleLabel.text = model?.name let watchCount = model?.watch_total ?? 0 + var hotStr = "" if watchCount > 1000 { let numStr = NSNumber(floatLiteral: CGFloat(watchCount) / 1000).toString(maximumFractionDigits: 1) - hotView.setTitle("\(numStr)K", for: .normal) + hotStr = "\(numStr)K" } else { - hotView.setTitle("\(watchCount)", for: .normal) + hotStr = "\(watchCount)" } + if let category = model?.category?.first, category.count > 0 { + hotStr += " | \(category)" + } + + hotView.setTitle(hotStr, for: .normal) } } diff --git a/Veloria/Class/Home/View/VPHomePlayHistoricalView.swift b/Veloria/Class/Home/View/VPHomePlayHistoricalView.swift index 5899474..e9cd213 100644 --- a/Veloria/Class/Home/View/VPHomePlayHistoricalView.swift +++ b/Veloria/Class/Home/View/VPHomePlayHistoricalView.swift @@ -23,6 +23,9 @@ class VPHomePlayHistoricalView: UIView { view.layer.cornerRadius = 10 view.layer.masksToBounds = true view.addEffectView(style: .dark) + + let tap = UITapGestureRecognizer(target: self, action: #selector(handlePlayButton)) + view.addGestureRecognizer(tap) return view }() @@ -57,7 +60,7 @@ class VPHomePlayHistoricalView: UIView { private lazy var playButton: UIButton = { let button = UIButton(type: .custom) button.setImage(UIImage(named: "play_icon_02"), for: .normal) - button.addTarget(self, action: #selector(handlePlayButton), for: .touchUpInside) + button.isUserInteractionEnabled = false return button }() diff --git a/Veloria/Class/Player/View/VPEpisodeView.swift b/Veloria/Class/Player/View/VPEpisodeView.swift index ea4a982..b575d24 100644 --- a/Veloria/Class/Player/View/VPEpisodeView.swift +++ b/Veloria/Class/Player/View/VPEpisodeView.swift @@ -282,7 +282,7 @@ extension VPEpisodeView: UICollectionViewDelegate, UICollectionViewDataSource { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { guard indexPath.row != currentIndex else { return } - var lastIndex = indexPath.row - 1 + var lastIndex = indexPath.row - 1 var lastIsLock = false if lastIndex > 0 && lastIndex < self.dataArr.count { let lastModel = self.dataArr[lastIndex] diff --git a/Veloria/Class/Rewards/Controller/VPRewardsViewController.swift b/Veloria/Class/Rewards/Controller/VPRewardsViewController.swift index 7079296..463120f 100644 --- a/Veloria/Class/Rewards/Controller/VPRewardsViewController.swift +++ b/Veloria/Class/Rewards/Controller/VPRewardsViewController.swift @@ -6,9 +6,18 @@ // import UIKit +import WebKit class VPRewardsViewController: VPCampaignWebViewController { + private lazy var emptyView: VPEmptyView = { + let view = VPEmptyView.createNoNetworkEmptyView { [weak self] in + guard let self = self else { return } + self.webView.reload() + } + return view + }() + override func viewDidLoad() { self.urlStr = kVPRewardsWebUrl super.viewDidLoad() @@ -22,4 +31,29 @@ class VPRewardsViewController: VPCampaignWebViewController { self.webView.reload() } + override func webView(_ webView: VPWebView, shouldStartLoadWith navigationAction: WKNavigationAction) -> Bool { + let result = super.webView(webView, shouldStartLoadWith: navigationAction) + emptyView.removeFromSuperview() + return result + } + + override func webViewDidFinishLoad(_ webView: VPWebView) { + super.webViewDidFinishLoad(webView) + emptyView.isHidden = true + } + + override func webView(_ webView: VPWebView, didFailLoadWithError error: any Error) { + super.webView(webView, didFailLoadWithError: error) + + if VPNetworkReachabilityManager.manager.isReachable != true { + if emptyView.superview == nil { + view.addSubview(emptyView) + emptyView.snp.makeConstraints { make in + make.left.equalToSuperview() + make.centerX.equalToSuperview() + make.centerY.equalToSuperview().offset(-100) + } + } + } + } }