Commit 2c31dbc8 authored by Steven杜宇's avatar Steven杜宇

// 版本更新

parent 79a811e3
...@@ -10,7 +10,7 @@ import UIKit ...@@ -10,7 +10,7 @@ import UIKit
import ESPullToRefresh import ESPullToRefresh
import GKNavigationBarSwift import GKNavigationBarSwift
let kShowAlertOfLatestVersion = "show_alert_latest_version" let kShowAlertOfSuggestLatestVersion = "show_alert_suggest_latest_version"
class YHHomePageViewController: YHBaseViewController { class YHHomePageViewController: YHBaseViewController {
lazy var viewModel : YHHomePageViewModel = { lazy var viewModel : YHHomePageViewModel = {
...@@ -272,10 +272,10 @@ extension YHHomePageViewController : UITabBarControllerDelegate { ...@@ -272,10 +272,10 @@ extension YHHomePageViewController : UITabBarControllerDelegate {
extension YHHomePageViewController { extension YHHomePageViewController {
func showNewVersionAlertView() { func showNewVersionAlertView() {
if let configModel = YHConfigManager.shared.reqVM.configModel { if let configModel = YHConfigManager.shared.reqVM.configModel, configModel.suggest_updating == true {
var isShow = false var isShow = false
if let alertLatestVersion = UserDefaults.standard.object(forKey: kShowAlertOfLatestVersion) as? String { if let alertLatestVersion = UserDefaults.standard.object(forKey: kShowAlertOfSuggestLatestVersion) as? String {
if !configModel.max_version.isEmpty, configModel.max_version != alertLatestVersion { if !configModel.max_version.isEmpty, configModel.max_version != alertLatestVersion {
isShow = true isShow = true
} }
...@@ -285,11 +285,11 @@ extension YHHomePageViewController { ...@@ -285,11 +285,11 @@ extension YHHomePageViewController {
if isShow { if isShow {
let alertView = YHFindAppNewVersionView.alertView(version: configModel.max_version).callBack(updateBlock: { let alertView = YHFindAppNewVersionView.alertView(version: configModel.max_version).callBack(updateBlock: {
UserDefaults.standard.set(configModel.max_version, forKey: kShowAlertOfLatestVersion) UserDefaults.standard.set(configModel.max_version, forKey: kShowAlertOfSuggestLatestVersion)
UserDefaults.standard.synchronize() UserDefaults.standard.synchronize()
}, dismissBlock: { }, dismissBlock: {
UserDefaults.standard.set(configModel.max_version, forKey: kShowAlertOfLatestVersion) UserDefaults.standard.set(configModel.max_version, forKey: kShowAlertOfSuggestLatestVersion)
UserDefaults.standard.synchronize() UserDefaults.standard.synchronize()
}) })
......
...@@ -11,11 +11,13 @@ import SmartCodable ...@@ -11,11 +11,13 @@ import SmartCodable
class YHConfigModel : SmartCodable { class YHConfigModel : SmartCodable {
var start_up_url: String = "" var start_up_url: String = ""
var min_version: String = ""
var max_version: String = ""
var countdown: Int = 0 var countdown: Int = 0
var oss_server: String = "" var oss_server: String = ""
var article_h5_url: String = "" var article_h5_url: String = ""
// 版本升级有关字段
var min_version: String = ""
var max_version: String = ""
var suggest_updating: Bool = false var suggest_updating: Bool = false
var suggest_updating_msg: String = "" var suggest_updating_msg: String = ""
......
...@@ -45,26 +45,28 @@ class YHMySettingViewController: YHBaseViewController, ConstraintRelatableTarget ...@@ -45,26 +45,28 @@ class YHMySettingViewController: YHBaseViewController, ConstraintRelatableTarget
}() }()
lazy var items: [PersonalModuleItem] = { lazy var items: [PersonalModuleItem] = {
// 是否需要展示版本更新红点
let isShowVersionRedPoint = YHAppVersionManager.shared.needShowRedPointOfSuggestVersionUpdate()
#if DEBUG #if DEBUG
return [PersonalModuleItem(title: "通知设置".local, type:.notifySettings), return [PersonalModuleItem(title: "通知设置".local, type:.notifySettings),
PersonalModuleItem(title: "权限配置".local, type:.permissionSettings), PersonalModuleItem(title: "权限配置".local, type:.permissionSettings),
PersonalModuleItem(title: "关于我们".local, type:.aboutUs), PersonalModuleItem(title: "关于我们".local, type:.aboutUs),
PersonalModuleItem(title: "设备相关".local, type:.deviceInfo), PersonalModuleItem(title: "设备相关".local, type:.deviceInfo),
PersonalModuleItem(title: "版本 \(UIDevice.appVersion())", type:.version)] PersonalModuleItem(title: "版本 \(UIDevice.appVersion())", isShowRedPoint:isShowVersionRedPoint, type:.version), ]
#elseif TESTENV #elseif TESTENV
return [PersonalModuleItem(title: "通知设置".local, type:.notifySettings), return [PersonalModuleItem(title: "通知设置".local, type:.notifySettings),
PersonalModuleItem(title: "权限配置".local, type:.permissionSettings), PersonalModuleItem(title: "权限配置".local, type:.permissionSettings),
PersonalModuleItem(title: "关于我们".local, type:.aboutUs), PersonalModuleItem(title: "关于我们".local, type:.aboutUs),
PersonalModuleItem(title: "设备相关".local, type:.deviceInfo), PersonalModuleItem(title: "设备相关".local, type:.deviceInfo),
PersonalModuleItem(title: "版本 \(UIDevice.appVersion())", type:.version)] PersonalModuleItem(title: "版本 \(UIDevice.appVersion())",isShowRedPoint:isShowVersionRedPoint, type:.version)]
#else #else
return [PersonalModuleItem(title: "通知设置".local, type:.notifySettings), return [PersonalModuleItem(title: "通知设置".local, type:.notifySettings),
PersonalModuleItem(title: "权限配置".local, type:.permissionSettings), PersonalModuleItem(title: "权限配置".local, type:.permissionSettings),
// PersonalModuleItem(title: "个人信息收集清单".local, type:.infoCollectList), // PersonalModuleItem(title: "个人信息收集清单".local, type:.infoCollectList),
// PersonalModuleItem(title: "第三方信息共享清单".local, type:.infoShareList), // PersonalModuleItem(title: "第三方信息共享清单".local, type:.infoShareList),
PersonalModuleItem(title: "关于我们".local, type:.aboutUs), PersonalModuleItem(title: "关于我们".local, type:.aboutUs),
PersonalModuleItem(title: "版本 \(UIDevice.appVersion())", type:.version)] PersonalModuleItem(title: "版本 \(UIDevice.appVersion())",isShowRedPoint:isShowVersionRedPoint, type:.version)]
#endif #endif
}() }()
...@@ -156,6 +158,20 @@ extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource ...@@ -156,6 +158,20 @@ extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource
if 0 <= indexPath.row && indexPath.row < items.count { if 0 <= indexPath.row && indexPath.row < items.count {
let item : PersonalModuleItem = items[indexPath.row]; let item : PersonalModuleItem = items[indexPath.row];
cell.titleLabel.text = item.title cell.titleLabel.text = item.title
cell.isShowRedPoint = false
cell.detailLabel.text = ""
if item.type == .version {
cell.isShowRedPoint = item.isShowRedPoint
var detailText = "已是最新版"
var detailColor = UIColor.init(hex: 0x121A26, alpha: 0.3)
if let configModel = YHConfigManager.shared.reqVM.configModel, configModel.suggest_updating == true {
detailText = "去更新"
detailColor = UIColor.brandMainColor
}
cell.detailLabel.text = detailText
cell.detailLabel.textColor = detailColor
}
} }
return cell return cell
} }
...@@ -167,8 +183,8 @@ extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource ...@@ -167,8 +183,8 @@ extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.row && indexPath.row < items.count { if 0 <= indexPath.row && indexPath.row < items.count {
let item = items[indexPath.row] let item = items[indexPath.row]
if item.type == .notifySettings { if item.type == .notifySettings {
let vc = YHMyNotifySettingVC() let vc = YHMyNotifySettingVC()
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
...@@ -184,6 +200,15 @@ extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource ...@@ -184,6 +200,15 @@ extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource
} else if item.type == .deviceInfo { } else if item.type == .deviceInfo {
let vc = YHDeviceInfoViewController() let vc = YHDeviceInfoViewController()
self.navigationController?.pushViewController(vc) self.navigationController?.pushViewController(vc)
} else if item.type == .version {
if item.isShowRedPoint {
item.isShowRedPoint = false
YHAppVersionManager.shared.saveTodayShowSuggestVersionUpdateRedPoint()
YHAppVersionManager.shared.goToAppStore()
self.tableView.reloadData()
}
} }
} }
} }
......
...@@ -9,6 +9,8 @@ import UIKit ...@@ -9,6 +9,8 @@ import UIKit
import SnapKit import SnapKit
import SafariServices import SafariServices
enum YHPersonalModuleItemType: Int { enum YHPersonalModuleItemType: Int {
case none = 0 case none = 0
...@@ -35,9 +37,10 @@ class PersonalModuleItem { ...@@ -35,9 +37,10 @@ class PersonalModuleItem {
var type:YHPersonalModuleItemType = .none var type:YHPersonalModuleItemType = .none
var isShowRedPoint:Bool = false var isShowRedPoint:Bool = false
init(icon: String? = nil, title: String, type:YHPersonalModuleItemType) { init(icon: String? = nil, title: String, isShowRedPoint:Bool = false, type:YHPersonalModuleItemType) {
self.icon = icon self.icon = icon
self.title = title self.title = title
self.isShowRedPoint = isShowRedPoint
self.type = type self.type = type
} }
} }
...@@ -135,6 +138,7 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget { ...@@ -135,6 +138,7 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
super.viewWillAppear(animated) super.viewWillAppear(animated)
requestLikeCollectionCount() requestLikeCollectionCount()
getTotalUnreadMsgCount() getTotalUnreadMsgCount()
checkSettingRedPoint()
} }
@objc func clickBtn() { @objc func clickBtn() {
...@@ -151,6 +155,10 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget { ...@@ -151,6 +155,10 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
return true return true
} }
func checkSettingRedPoint() {
headerView.isShowSettingRedPoint = YHAppVersionManager.shared.needShowRedPointOfSuggestVersionUpdate()
}
func initView() { func initView() {
gk_navigationBar.isHidden = true gk_navigationBar.isHidden = true
......
...@@ -11,7 +11,11 @@ import UIKit ...@@ -11,7 +11,11 @@ import UIKit
class YHMySettingCell: UITableViewCell { class YHMySettingCell: UITableViewCell {
static let cellReuseIdentifier = "YHMySettingCell" static let cellReuseIdentifier = "YHMySettingCell"
var isShowRedPoint: Bool = false {
didSet {
redPointView.isHidden = !isShowRedPoint
}
}
lazy var titleLabel: UILabel = { lazy var titleLabel: UILabel = {
let label = UILabel() let label = UILabel()
label.textColor = UIColor(hexString:"#141414") label.textColor = UIColor(hexString:"#141414")
......
...@@ -28,6 +28,11 @@ class YHUserInfoHeaderView: UIView { ...@@ -28,6 +28,11 @@ class YHUserInfoHeaderView: UIView {
userNameLabel.text = nickName userNameLabel.text = nickName
} }
} }
var isShowSettingRedPoint:Bool = false {
didSet {
self.settingRedPointView.isHidden = !isShowSettingRedPoint
}
}
private lazy var avarImgView:UIImageView = { private lazy var avarImgView:UIImageView = {
let imgView = UIImageView(image: UIImage(named: "mine_head_default")) let imgView = UIImageView(image: UIImage(named: "mine_head_default"))
......
...@@ -8,9 +8,14 @@ ...@@ -8,9 +8,14 @@
import UIKit import UIKit
// 本地存储日期 当天是否显示过建议更新最新版本红点提示的日期
let kShowRedPointOfSuggestLatestVersionDate = "show_redpoint_suggest_latest_version_date"
class YHAppVersionManager { class YHAppVersionManager {
static func goToAppStore() { static let shared = YHAppVersionManager()
func goToAppStore() {
// 替换为你要打开的 App Store 中的应用程序链接 // 替换为你要打开的 App Store 中的应用程序链接
let appStoreLink = "https://itunes.apple.com/app/989673964" let appStoreLink = "https://itunes.apple.com/app/989673964"
// 使用该链接创建一个 URL 实例 // 使用该链接创建一个 URL 实例
...@@ -22,4 +27,36 @@ class YHAppVersionManager { ...@@ -22,4 +27,36 @@ class YHAppVersionManager {
} }
} }
} }
func needShowRedPointOfSuggestVersionUpdate() -> Bool {
var isShowRedPoint = false
// 判断版本更新逻辑
if let configModel = YHConfigManager.shared.reqVM.configModel, configModel.suggest_updating == true {
if configModel.max_version != UIDevice.appVersion() {
if let showDateString = UserDefaults.standard.object(forKey: kShowRedPointOfSuggestLatestVersionDate) as? String {
if !showDateString.isEmpty, showDateString != self.getCurrentDateSaveKey() { // 需要更新且今天没有展示过
isShowRedPoint = true
}
} else { // 没有任何一天展示过所以本地没有保存日期数据
isShowRedPoint = true
}
}
}
return isShowRedPoint
}
func getCurrentDateSaveKey() -> String {
let format = DateFormatter()
format.dateFormat = "yyyy-MM-dd"
let todayString = format.string(from: Date())
return todayString
}
func saveTodayShowSuggestVersionUpdateRedPoint() {
UserDefaults.standard.set(self.getCurrentDateSaveKey(), forKey: kShowRedPointOfSuggestLatestVersionDate)
UserDefaults.standard.synchronize()
}
} }
...@@ -159,7 +159,7 @@ class YHAppVersionForceUpdateView: UIView { ...@@ -159,7 +159,7 @@ class YHAppVersionForceUpdateView: UIView {
} }
@objc func didClickUpdateBtn() { @objc func didClickUpdateBtn() {
YHAppVersionManager.goToAppStore() YHAppVersionManager.shared.goToAppStore()
} }
@objc func didClickExitBtn() { @objc func didClickExitBtn() {
......
...@@ -286,6 +286,6 @@ class YHFindAppNewVersionView: UIView { ...@@ -286,6 +286,6 @@ class YHFindAppNewVersionView: UIView {
@objc func didClickUpdateBtn() { @objc func didClickUpdateBtn() {
self.updateBlock?() self.updateBlock?()
YHAppVersionManager.goToAppStore() YHAppVersionManager.shared.goToAppStore()
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment