// // LunchViewController.swift // MusicPlayer // // Created by Mr.Zhou on 2024/3/27. // import UIKit ///启动页 class MP_LunchViewController: UIViewController { @IBOutlet weak var progressView: MP_Lunch_ProgressView!{ didSet{ progressView.layer.masksToBounds = true } } //帧计时器 private var timer:CADisplayLink! //最大计时值 private lazy var maxTimes:TimeInterval = 6 //当前计时值 private lazy var currentTimes:TimeInterval = 0 //计时器结束事件 private var completionBlock:(() -> Void)? override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .init(hex: "#000000") timer = CADisplayLink(target: self, selector: #selector(timerActionClick(_ :))) //一秒执行多少次 timer.preferredFramesPerSecond = 20 //开辟线程 timer.add(to: RunLoop.current, forMode: .common) //获取idfa _ = requestTrackingAuthorization(self) MP_AnalyticsManager.shared.getOpenStatus { [weak self] open in guard let self = self else {return} if open { //根据ip值确定进入那个页面 MP_NetWorkManager.shared.requestIPInfo { statu in if statu == true { //允许进入b面 print("BLog") self.completionBlock = { DispatchQueue.main.async { [weak self] in guard let self = self else {return} //停止计时器 timer.isPaused = true //加载完毕,判断并跳转 accessAppdelegate.switch_positive() } } }else { print("ALog") //打开A面 self.completionBlock = { DispatchQueue.main.async { [weak self] in guard let self = self else {return} //停止计时器 timer.isPaused = true //加载完毕,判断并跳转 accessAppdelegate.switch_aSide() } } } } }else { print("ALog") //打开A面 completionBlock = { DispatchQueue.main.async { [weak self] in guard let self = self else {return} //停止计时器 timer.isPaused = true //加载完毕,判断并跳转 accessAppdelegate.switch_aSide() } } } } //启动计时器 timer.isPaused = false } deinit { //销毁计时器 timer.invalidate() timer = nil NotificationCenter.default.removeObserver(self) } override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) MP_AnalyticsManager.shared.launch_pvAction() } //计时器执行事件 @objc fileprivate func timerActionClick(_ link:CADisplayLink) { if maxTimes > currentTimes { //未加载完 currentTimes += 0.05 let value = currentTimes/maxTimes DispatchQueue.main.async { [weak self] in guard let self = self else {return} //设置进度条 progressView.setProgress(value) } }else { if completionBlock != nil { completionBlock!() } } } }