我有一个建议更新警报当我打开我的应用程序. T写在applicationDidBecomeActive然后我隐藏我的应用程序并重新打开.我不想显示另一个警报堆栈了
for item in GlobalData.sharedInstance.linkContact?.socialLink?.forceUpdate ?? []{
if item == currentVersionDouble {
let alert = UIAlertController(title: "Thông báo", message: "Chúng tôi đã phát hành một phiên bản mới hơn cho ứng dụng này. Bạn có muốn cập nhật không?", preferredStyle: .alert)
let actionUpgrade = UIAlertAction(title: "Cập nhật", style: .default) { (_: UIAlertAction) in
if let requestUrlStore = URL(string: urlLink.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? "") {
if #available(iOS 10.0, *) {
UIApplication.shared.open(requestUrlStore, options: [:], completionHandler: nil)
} else {
}
}
}
alert.addAction(actionUpgrade)
UIApplication.getTopViewController()?.present(alert, animated: true, completion: nil)
CFRunLoopWakeUp(CFRunLoopGetCurrent())
break
}
}
然后我将func添加到applicationDidBecomeActive
func applicationDidBecomeActive(_ application: UIApplication) {
DispatchQueue.main.asyncAfter(deadline: .now() + 5) {
ConfigApp.checkUpdate()
}
}
我不知道我该怎么弥补
1条答案
按热度按时间wmomyfyw1#
向类中添加一个boolean属性,以跟踪是否已显示警报:
然后修改checkUpdate()方法以检查之前是否显示过警报,如果没有显示,则只显示警报
从applicationDidBecomeActive调用checkUpdate(),就像你做的一样。
从这个变化,警报将只显示一次,用户打开应用程序后,更新变得可用.否则,警报将不会再次显示.