178 lines
5.4 KiB
Swift
178 lines
5.4 KiB
Swift
//
|
||
// AppDelegate.swift
|
||
// anniversary_Project
|
||
//
|
||
// Created by 忆海16 on 2024/4/11.
|
||
//
|
||
|
||
import UIKit
|
||
import IQKeyboardManagerSwift
|
||
import Photos
|
||
import Alamofire
|
||
import SVProgressHUD
|
||
import AppLovinSDK
|
||
import FirebaseCore
|
||
import FirebaseAnalytics
|
||
|
||
import FBSDKCoreKit
|
||
|
||
@main
|
||
class AppDelegate: UIResponder, UIApplicationDelegate,UNUserNotificationCenterDelegate {
|
||
|
||
var window: UIWindow?
|
||
|
||
|
||
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
|
||
|
||
// window = UIWindow()
|
||
// window?.frame = UIScreen.main.bounds
|
||
IQKeyboardManager.shared.enable = true
|
||
setNetwork()
|
||
LuxADConfigure.shareInstance().checkATT()
|
||
LuxADConfigure.shareInstance().configureADByFirebase(with: self.window!)
|
||
ApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||
// setdispatch()
|
||
|
||
|
||
if (!LuxADManager.shareInstance().isADSSMode()){
|
||
Analytics.logEvent("launch", parameters: nil)
|
||
}
|
||
// LuxADManager shareInstance].isADSSMode
|
||
|
||
self.window?.makeKeyAndVisible()
|
||
|
||
// 强制设置浅色模式
|
||
if #available(iOS 13.0, *) {
|
||
window?.overrideUserInterfaceStyle = .light
|
||
|
||
}
|
||
|
||
return true
|
||
}
|
||
func application(_ app: UIApplication,open url: URL,options:[UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
|
||
ApplicationDelegate.shared.application(
|
||
app,
|
||
open: url,
|
||
sourceApplication: options[UIApplication.OpenURLOptionsKey.sourceApplication] as? String,
|
||
annotation: options[UIApplication.OpenURLOptionsKey.annotation]
|
||
)
|
||
}
|
||
|
||
|
||
// 当应用将要进入前台时调用(从后台到前台的过渡)
|
||
func applicationWillEnterForeground(_ application: UIApplication) {
|
||
|
||
}
|
||
|
||
// 当应用已经进入前台并变为活跃状态时调用
|
||
func applicationDidBecomeActive(_ application: UIApplication) {
|
||
|
||
LuxADManager.shareInstance().showOpenAD()
|
||
|
||
}
|
||
|
||
|
||
|
||
func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
|
||
completionHandler([.alert, .sound, .badge])
|
||
}
|
||
|
||
func setNetwork(){
|
||
// 创建一个URL对象
|
||
if let url = URL(string: "https://www.google.com") {
|
||
// 创建一个URLSession对象
|
||
let session = URLSession.shared
|
||
|
||
// 创建一个网络请求任务
|
||
let task = session.dataTask(with: url) { (data, response, error) in
|
||
if let error = error {
|
||
print("网络请求出错:\(error)")
|
||
|
||
}
|
||
}
|
||
|
||
// 开始网络请求任务
|
||
task.resume()
|
||
} else {
|
||
print("URL无效")
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
func setdispatch(){
|
||
// 使用信号量控制并发任务
|
||
let dispatchGroup = DispatchGroup()
|
||
|
||
// 请求跟踪授权并处理 IDFA
|
||
dispatchGroup.enter()
|
||
DispatchQueue.global(qos: .background).async {
|
||
requestTrackingAuthorization { idfa in
|
||
DispatchQueue.main.async {
|
||
if let idfa = idfa {
|
||
print("IDFA: \(idfa)")
|
||
StartManager.shared.idfaid = idfa
|
||
print("Stored IDFA: \(StartManager.shared.idfaid ?? "N/A")")
|
||
} else {
|
||
print("IDFA is not available or tracking authorization denied.")
|
||
}
|
||
dispatchGroup.leave()
|
||
}
|
||
}
|
||
}
|
||
|
||
// 获取本地 IP 地址
|
||
dispatchGroup.enter()
|
||
DispatchQueue.global(qos: .background).async {
|
||
if let localIP = getLocalIPAddress() {
|
||
DispatchQueue.main.async {
|
||
print("Local IP Address: \(localIP)")
|
||
StartManager.shared.localIP = localIP
|
||
dispatchGroup.leave()
|
||
}
|
||
} else {
|
||
DispatchQueue.main.async {
|
||
print("Local IP Address not available")
|
||
dispatchGroup.leave()
|
||
}
|
||
}
|
||
}
|
||
|
||
// 获取远程 IP 地址
|
||
dispatchGroup.enter()
|
||
DispatchQueue.global(qos: .background).async {
|
||
getPublicIPAddress { publicIP in
|
||
DispatchQueue.main.async {
|
||
if let publicIP = publicIP {
|
||
print("Public IP Address: \(publicIP)")
|
||
StartManager.shared.publicIP = publicIP
|
||
print("Stored Public IP Address: \(StartManager.shared.publicIP ?? "N/A")")
|
||
} else {
|
||
print("Public IP Address not available")
|
||
}
|
||
dispatchGroup.leave()
|
||
}
|
||
}
|
||
}
|
||
|
||
// 获取设备 ID
|
||
dispatchGroup.enter()
|
||
DispatchQueue.global(qos: .background).async {
|
||
let deviceID = UIDevice.current.identifierForVendor?.uuidString
|
||
DispatchQueue.main.async {
|
||
StartManager.shared.devicID = deviceID
|
||
print("Device ID: \(StartManager.shared.devicID ?? "N/A")")
|
||
dispatchGroup.leave()
|
||
}
|
||
}
|
||
|
||
// 所有任务完成后的操作
|
||
dispatchGroup.notify(queue: .main) {
|
||
print("All tasks are completed.")
|
||
}
|
||
|
||
}
|
||
|
||
|
||
|