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

// 版本更新

parent 79a811e3
......@@ -10,7 +10,7 @@ import UIKit
import ESPullToRefresh
import GKNavigationBarSwift
let kShowAlertOfLatestVersion = "show_alert_latest_version"
let kShowAlertOfSuggestLatestVersion = "show_alert_suggest_latest_version"
class YHHomePageViewController: YHBaseViewController {
lazy var viewModel : YHHomePageViewModel = {
......@@ -272,10 +272,10 @@ extension YHHomePageViewController : UITabBarControllerDelegate {
extension YHHomePageViewController {
func showNewVersionAlertView() {
if let configModel = YHConfigManager.shared.reqVM.configModel {
if let configModel = YHConfigManager.shared.reqVM.configModel, configModel.suggest_updating == true {
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 {
isShow = true
}
......@@ -285,11 +285,11 @@ extension YHHomePageViewController {
if isShow {
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()
}, dismissBlock: {
UserDefaults.standard.set(configModel.max_version, forKey: kShowAlertOfLatestVersion)
UserDefaults.standard.set(configModel.max_version, forKey: kShowAlertOfSuggestLatestVersion)
UserDefaults.standard.synchronize()
})
......
......@@ -11,11 +11,13 @@ import SmartCodable
class YHConfigModel : SmartCodable {
var start_up_url: String = ""
var min_version: String = ""
var max_version: String = ""
var countdown: Int = 0
var oss_server: String = ""
var article_h5_url: String = ""
// 版本升级有关字段
var min_version: String = ""
var max_version: String = ""
var suggest_updating: Bool = false
var suggest_updating_msg: String = ""
......
......@@ -45,26 +45,28 @@ class YHMySettingViewController: YHBaseViewController, ConstraintRelatableTarget
}()
lazy var items: [PersonalModuleItem] = {
// 是否需要展示版本更新红点
let isShowVersionRedPoint = YHAppVersionManager.shared.needShowRedPointOfSuggestVersionUpdate()
#if DEBUG
return [PersonalModuleItem(title: "通知设置".local, type:.notifySettings),
PersonalModuleItem(title: "权限配置".local, type:.permissionSettings),
PersonalModuleItem(title: "关于我们".local, type:.aboutUs),
PersonalModuleItem(title: "设备相关".local, type:.deviceInfo),
PersonalModuleItem(title: "版本 \(UIDevice.appVersion())", type:.version)]
PersonalModuleItem(title: "版本 \(UIDevice.appVersion())", isShowRedPoint:isShowVersionRedPoint, type:.version), ]
#elseif TESTENV
return [PersonalModuleItem(title: "通知设置".local, type:.notifySettings),
PersonalModuleItem(title: "权限配置".local, type:.permissionSettings),
PersonalModuleItem(title: "关于我们".local, type:.aboutUs),
PersonalModuleItem(title: "设备相关".local, type:.deviceInfo),
PersonalModuleItem(title: "版本 \(UIDevice.appVersion())", type:.version)]
PersonalModuleItem(title: "版本 \(UIDevice.appVersion())",isShowRedPoint:isShowVersionRedPoint, type:.version)]
#else
return [PersonalModuleItem(title: "通知设置".local, type:.notifySettings),
PersonalModuleItem(title: "权限配置".local, type:.permissionSettings),
// PersonalModuleItem(title: "个人信息收集清单".local, type:.infoCollectList),
// PersonalModuleItem(title: "第三方信息共享清单".local, type:.infoShareList),
PersonalModuleItem(title: "关于我们".local, type:.aboutUs),
PersonalModuleItem(title: "版本 \(UIDevice.appVersion())", type:.version)]
PersonalModuleItem(title: "版本 \(UIDevice.appVersion())",isShowRedPoint:isShowVersionRedPoint, type:.version)]
#endif
}()
......@@ -156,6 +158,20 @@ extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource
if 0 <= indexPath.row && indexPath.row < items.count {
let item : PersonalModuleItem = items[indexPath.row];
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
}
......@@ -167,8 +183,8 @@ extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if 0 <= indexPath.row && indexPath.row < items.count {
let item = items[indexPath.row]
if item.type == .notifySettings {
let vc = YHMyNotifySettingVC()
self.navigationController?.pushViewController(vc)
......@@ -184,6 +200,15 @@ extension YHMySettingViewController : UITableViewDelegate, UITableViewDataSource
} else if item.type == .deviceInfo {
let vc = YHDeviceInfoViewController()
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
import SnapKit
import SafariServices
enum YHPersonalModuleItemType: Int {
case none = 0
......@@ -35,9 +37,10 @@ class PersonalModuleItem {
var type:YHPersonalModuleItemType = .none
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.title = title
self.isShowRedPoint = isShowRedPoint
self.type = type
}
}
......@@ -135,6 +138,7 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
super.viewWillAppear(animated)
requestLikeCollectionCount()
getTotalUnreadMsgCount()
checkSettingRedPoint()
}
@objc func clickBtn() {
......@@ -151,6 +155,10 @@ class YHMyViewController: YHBaseViewController, ConstraintRelatableTarget {
return true
}
func checkSettingRedPoint() {
headerView.isShowSettingRedPoint = YHAppVersionManager.shared.needShowRedPointOfSuggestVersionUpdate()
}
func initView() {
gk_navigationBar.isHidden = true
......
......@@ -11,7 +11,11 @@ import UIKit
class YHMySettingCell: UITableViewCell {
static let cellReuseIdentifier = "YHMySettingCell"
var isShowRedPoint: Bool = false {
didSet {
redPointView.isHidden = !isShowRedPoint
}
}
lazy var titleLabel: UILabel = {
let label = UILabel()
label.textColor = UIColor(hexString:"#141414")
......
......@@ -28,6 +28,11 @@ class YHUserInfoHeaderView: UIView {
userNameLabel.text = nickName
}
}
var isShowSettingRedPoint:Bool = false {
didSet {
self.settingRedPointView.isHidden = !isShowSettingRedPoint
}
}
private lazy var avarImgView:UIImageView = {
let imgView = UIImageView(image: UIImage(named: "mine_head_default"))
......
......@@ -8,9 +8,14 @@
import UIKit
// 本地存储日期 当天是否显示过建议更新最新版本红点提示的日期
let kShowRedPointOfSuggestLatestVersionDate = "show_redpoint_suggest_latest_version_date"
class YHAppVersionManager {
static func goToAppStore() {
static let shared = YHAppVersionManager()
func goToAppStore() {
// 替换为你要打开的 App Store 中的应用程序链接
let appStoreLink = "https://itunes.apple.com/app/989673964"
// 使用该链接创建一个 URL 实例
......@@ -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 {
}
@objc func didClickUpdateBtn() {
YHAppVersionManager.goToAppStore()
YHAppVersionManager.shared.goToAppStore()
}
@objc func didClickExitBtn() {
......
......@@ -286,6 +286,6 @@ class YHFindAppNewVersionView: UIView {
@objc func didClickUpdateBtn() {
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