833 lines
34 KiB
Swift
833 lines
34 KiB
Swift
//
|
||
// WA_DetailsVC.swift
|
||
// wallpaper_project
|
||
//
|
||
// Created by 忆海16 on 2024/3/11.
|
||
//
|
||
|
||
import UIKit
|
||
import SDWebImage
|
||
import Photos
|
||
import SVProgressHUD
|
||
import AppLovinSDK
|
||
import FirebaseAnalytics
|
||
import Alamofire
|
||
import FirebaseRemoteConfig
|
||
import MTGSDKNewInterstitial
|
||
import MTGSDKBidding
|
||
import MTGSDK
|
||
|
||
class WA_DetailsVC: WA_RootVC {
|
||
|
||
|
||
@IBOutlet weak var bgView: UIView!
|
||
|
||
@IBOutlet weak var backBtn: UIButton!
|
||
|
||
|
||
@IBOutlet weak var setBtn: UIButton!
|
||
|
||
@IBOutlet weak var preimageV: UIImageView!
|
||
|
||
var model = WA_3DModel()
|
||
|
||
var modeltype = WallpaperData()
|
||
|
||
var preV:UIView?
|
||
|
||
let activityView = UIActivityIndicatorView()
|
||
|
||
var type:Int = 0
|
||
|
||
var interstitialAd: MAInterstitialAd!
|
||
var retryAttempt = 0.0
|
||
|
||
var isback:Bool = false
|
||
|
||
var remoteConfig: RemoteConfig!
|
||
|
||
var isadshow:Bool = false
|
||
var bidToken:String?
|
||
var newInterstitialAdManager:MTGNewInterstitialBidAdManager?
|
||
|
||
override func viewDidLoad() {
|
||
super.viewDidLoad()
|
||
// self.createInterstitialAd()
|
||
// interstitialAd.load()
|
||
|
||
if type == 1{
|
||
let imageURL = URL(string: model.preview ?? "")
|
||
preimageV.sd_setImage(with: imageURL, placeholderImage: UIImage(named: "Rectangle"))
|
||
}else{
|
||
let imageURL = URL(string: modeltype.source ?? "")
|
||
preimageV.sd_setImage(with: imageURL, placeholderImage: UIImage(named: "Rectangle"))
|
||
}
|
||
Analytics.logEvent("in_Details", parameters: nil)
|
||
|
||
|
||
setBtn.layer.cornerRadius = 10
|
||
|
||
// 添加手势识别器到 UIView 上
|
||
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(viewTapped))
|
||
preimageV.isUserInteractionEnabled = true
|
||
preimageV.addGestureRecognizer(tapGesture)
|
||
|
||
activityView.center = CGPoint(x: self.view.center.x, y: self.view.center.y - kSafeArea_Top - 44)
|
||
// 停止后,隐藏菊花
|
||
activityView.hidesWhenStopped = true
|
||
activityView.color = .black;
|
||
activityView.style = UIActivityIndicatorView.Style.whiteLarge
|
||
|
||
self.view.addSubview(activityView)
|
||
backBtn.layer.cornerRadius = 20
|
||
|
||
if type == 1{
|
||
let model1 = WA_3DModel()
|
||
model1.preview = self.model.preview
|
||
model1.title = self.model.title
|
||
model1.thumbnail = self.model.thumbnail
|
||
model1.is_free = self.model.is_free
|
||
model1.category = self.model.category
|
||
model1.id = self.model.id
|
||
model1.cnt_like = self.model.cnt_like
|
||
HistoryManager.shared.addHistoryItem(item: model1)
|
||
}else{
|
||
let model1 = WallpaperData()
|
||
model1.original = self.modeltype.original
|
||
model1.previewThumb = self.modeltype.previewThumb
|
||
model1.source = self.modeltype.source
|
||
model1.banner = self.modeltype.banner
|
||
HistoryjpgManager.shared.addHistoryItem(item: model1)
|
||
}
|
||
|
||
|
||
}
|
||
|
||
|
||
@IBAction func setting(_ sender: Any) {
|
||
|
||
Analytics.logEvent("touch_savephoto", parameters: nil)
|
||
self.activityView.startAnimating()
|
||
saveImageToPhotoLibrary()
|
||
//
|
||
// if self.isadshow == true{
|
||
// DispatchQueue.main.asyncAfter(wallDeadline: .now() + 0.5) {
|
||
// if self.interstitialAd.isReady {
|
||
// self.interstitialAd.show()
|
||
// Analytics.logEvent("details_load_success", parameters: nil)
|
||
// self.setPostSHOW()
|
||
// let logMessage = """
|
||
// deviceId: \(StartManager.shared.devicID ?? "")
|
||
// localIp: \(StartManager.shared.localIP ?? "")
|
||
// "deviceId": \(StartManager.shared.devicID ?? ""),
|
||
// "localIp": \(StartManager.shared.localIP ?? ""),
|
||
// "remoteIp": \(StartManager.shared.publicIP ?? ""),
|
||
// "linkId": "",
|
||
// "packageName": "com.wallpapaer.hd.live.app",
|
||
// "gaid": \(StartManager.shared.idfaid ?? ""),
|
||
// "dataId": "",
|
||
// "shelfNumber": "壁纸详情点击保存",
|
||
// "succeed": \(StartManager.shared.succeed),
|
||
// "loadTime": \(StartManager.shared.loadTime ?? 0),
|
||
// "adPlatform": \(StartManager.shared.adPlatform ?? ""),
|
||
// "countryCode": \(StartManager.shared.countryCode ?? ""),
|
||
// "adId": \(StartManager.shared.adId ?? ""),
|
||
// "platformResponseTime": \(StartManager.shared.platformResponseTime ?? 0.0),
|
||
// "getIpResponseTime": \(StartManager.shared.getIpResponseTime ?? 0.0),
|
||
// "ecpm": \(StartManager.shared.ecpm ?? 0.0),
|
||
// "dsp": \(StartManager.shared.dsp ?? ""),
|
||
// "network": \(StartManager.shared.network ?? "")
|
||
// """
|
||
// AppDelegate.shared.addLogMessage(logMessage)
|
||
// }else{
|
||
// print("-------广告没准备好")
|
||
// Analytics.logEvent("details_load_fail", parameters: nil)
|
||
// DispatchQueue.global().asyncAfter(deadline: .now() + 1.5) {
|
||
// DispatchQueue.main.asyncAfter(deadline: .now() + 0){
|
||
// self.activityView.stopAnimating()
|
||
// // self.view.makeToast("Save Success", duration: 1.5, position: .center)
|
||
// // 创建一个 UIAlertController
|
||
// let alertController = UIAlertController(title: "Successfully saved", message: "Do you need to set up a tutorial", preferredStyle: .alert)
|
||
//
|
||
// // 添加一个取消按钮
|
||
// alertController.addAction(UIAlertAction(title: "cancel", style: .cancel, handler: nil))
|
||
//
|
||
// // 添加一个确定按钮
|
||
// alertController.addAction(UIAlertAction(title: "Need", style: .default, handler: { action in
|
||
// // 点击确定按钮后执行的操作
|
||
// // print("点击了确定按钮")
|
||
// let vc = WA_TipVC()
|
||
// self.present(vc, animated: true)
|
||
// }))
|
||
//
|
||
// // 在当前视图控制器中 present 显示提示框
|
||
// self.present(alertController, animated: true, completion: nil)
|
||
//
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
//
|
||
// }else{
|
||
// Analytics.logEvent("details_load_fail", parameters: nil)
|
||
// DispatchQueue.global().asyncAfter(deadline: .now() + 1.5) {
|
||
// DispatchQueue.main.asyncAfter(deadline: .now() + 0){
|
||
// self.activityView.stopAnimating()
|
||
// // self.view.makeToast("Save Success", duration: 1.5, position: .center)
|
||
// // 创建一个 UIAlertController
|
||
// let alertController = UIAlertController(title: "Successfully saved", message: "Do you need to set up a tutorial", preferredStyle: .alert)
|
||
//
|
||
// // 添加一个取消按钮
|
||
// alertController.addAction(UIAlertAction(title: "cancel", style: .cancel, handler: nil))
|
||
//
|
||
// // 添加一个确定按钮
|
||
// alertController.addAction(UIAlertAction(title: "Need", style: .default, handler: { action in
|
||
// // 点击确定按钮后执行的操作
|
||
// // print("点击了确定按钮")
|
||
// let vc = WA_TipVC()
|
||
// self.present(vc, animated: true)
|
||
// }))
|
||
//
|
||
// // 在当前视图控制器中 present 显示提示框
|
||
// self.present(alertController, animated: true, completion: nil)
|
||
// }
|
||
// }
|
||
|
||
// }
|
||
let issureready = newInterstitialAdManager?.isAdReady()
|
||
if self.isadshow == true{
|
||
if ((issureready) != nil) {
|
||
newInterstitialAdManager?.show(from: self)
|
||
}else{
|
||
DispatchQueue.global().asyncAfter(deadline: .now() + 1.5) {
|
||
DispatchQueue.main.asyncAfter(deadline: .now() + 0){
|
||
self.activityView.stopAnimating()
|
||
// self.view.makeToast("Save Success", duration: 1.5, position: .center)
|
||
// 创建一个 UIAlertController
|
||
let alertController = UIAlertController(title: "Successfully saved", message: "Do you need to set up a tutorial", preferredStyle: .alert)
|
||
|
||
// 添加一个取消按钮
|
||
alertController.addAction(UIAlertAction(title: "cancel", style: .cancel, handler: nil))
|
||
|
||
// 添加一个确定按钮
|
||
alertController.addAction(UIAlertAction(title: "Need", style: .default, handler: { action in
|
||
// 点击确定按钮后执行的操作
|
||
// print("点击了确定按钮")
|
||
let vc = WA_TipVC()
|
||
self.present(vc, animated: true)
|
||
}))
|
||
|
||
// 在当前视图控制器中 present 显示提示框
|
||
self.present(alertController, animated: true, completion: nil)
|
||
}
|
||
}
|
||
}
|
||
|
||
}else{
|
||
DispatchQueue.global().asyncAfter(deadline: .now() + 1.5) {
|
||
DispatchQueue.main.asyncAfter(deadline: .now() + 0){
|
||
self.activityView.stopAnimating()
|
||
// self.view.makeToast("Save Success", duration: 1.5, position: .center)
|
||
// 创建一个 UIAlertController
|
||
let alertController = UIAlertController(title: "Successfully saved", message: "Do you need to set up a tutorial", preferredStyle: .alert)
|
||
|
||
// 添加一个取消按钮
|
||
alertController.addAction(UIAlertAction(title: "cancel", style: .cancel, handler: nil))
|
||
|
||
// 添加一个确定按钮
|
||
alertController.addAction(UIAlertAction(title: "Need", style: .default, handler: { action in
|
||
// 点击确定按钮后执行的操作
|
||
// print("点击了确定按钮")
|
||
let vc = WA_TipVC()
|
||
self.present(vc, animated: true)
|
||
}))
|
||
|
||
// 在当前视图控制器中 present 显示提示框
|
||
self.present(alertController, animated: true, completion: nil)
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
override func viewWillAppear(_ animated: Bool) {
|
||
super.viewWillAppear(animated)
|
||
navigationController?.navigationBar.isHidden = true
|
||
// self.createInterstitialAd()
|
||
|
||
// 初始化 Remote Config
|
||
remoteConfig = RemoteConfig.remoteConfig()
|
||
|
||
|
||
|
||
// 设置最小获取间隔(开发期间可以设置较小的值)
|
||
let settings = RemoteConfigSettings()
|
||
settings.minimumFetchInterval = 0
|
||
remoteConfig.configSettings = settings
|
||
// Fetch 配置值
|
||
remoteConfig.setDefaults(fromPlist: "isopen")
|
||
// Fetch 配置值
|
||
let param = MTGBiddingRequestParameter(placementId: "1636950", unitId: "3501963", basePrice: nil)
|
||
|
||
MTGBiddingRequest.getBidWith(param) { bidResponse in
|
||
if bidResponse.success{
|
||
self.bidToken = bidResponse.bidToken
|
||
bidResponse.notifyWin()
|
||
self.newInterstitialAdManager = MTGNewInterstitialBidAdManager(placementId: "1636950", unitId: "3501963", delegate: self)
|
||
self.newInterstitialAdManager?.loadAd(withBidToken:self.bidToken!)
|
||
self.fetchRemoteConfig()
|
||
|
||
}else{
|
||
WA_TabbarCommon.TabBarController()
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
///是否有广告
|
||
func fetchRemoteConfig() {
|
||
let localVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String ?? "0.0"
|
||
remoteConfig.fetch{ (status, error) -> Void in
|
||
if status == .success {
|
||
print("Config fetched!")
|
||
self.remoteConfig.activate { changed, error in
|
||
if error == nil{
|
||
let js = self.remoteConfig.configValue(forKey: "isopen").jsonValue as! [String:Any]
|
||
let valueopen = js["isadopen"] as! Bool
|
||
let valueversion = js["version"] as! String
|
||
DispatchQueue.main.async {
|
||
if valueversion == localVersion{
|
||
self.isadshow = false
|
||
}else{
|
||
if valueopen {
|
||
self.isadshow = true
|
||
} else {
|
||
self.isadshow = false
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
} else {
|
||
print("Config not fetched")
|
||
if let error = error {
|
||
print("Error: \(error.localizedDescription)")
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
func saveImageToPhotoLibrary() {
|
||
guard let image = self.preimageV.image else {
|
||
print("找不到要保存的图片")
|
||
SVProgressHUD.showInfo(withStatus: "Can't find the picture to save")
|
||
DispatchQueue.global().asyncAfter(deadline: .now() + 2.0) {
|
||
SVProgressHUD.dismiss()
|
||
}
|
||
return
|
||
}
|
||
|
||
PHPhotoLibrary.requestAuthorization { status in
|
||
switch status {
|
||
case .authorized:
|
||
self.saveImage(image: image)
|
||
case .denied, .restricted:
|
||
print("用户拒绝了访问相册权限")
|
||
SVProgressHUD.showInfo(withStatus: "Album access denied")
|
||
DispatchQueue.global().asyncAfter(deadline: .now() + 2.0) {
|
||
SVProgressHUD.dismiss()
|
||
}
|
||
case .notDetermined:
|
||
print("用户尚未选择是否允许访问相册")
|
||
SVProgressHUD.showInfo(withStatus: "You have not chosen whether to allow access to the album")
|
||
DispatchQueue.global().asyncAfter(deadline: .now() + 2.0) {
|
||
SVProgressHUD.dismiss()
|
||
}
|
||
@unknown default:
|
||
break
|
||
}
|
||
}
|
||
}
|
||
|
||
func saveImage(image: UIImage) {
|
||
PHPhotoLibrary.shared().performChanges({
|
||
// 创建向照片库添加新图像资产的请求
|
||
PHAssetChangeRequest.creationRequestForAsset(from: image)
|
||
}) { success, error in
|
||
if success {
|
||
print("图片保存成功")
|
||
|
||
|
||
} else if let error = error {
|
||
print("图片保存失败:\(error.localizedDescription)")
|
||
SVProgressHUD.showError(withStatus: "Image saving failed:\(error.localizedDescription)")
|
||
DispatchQueue.global().asyncAfter(deadline: .now() + 2.0) {
|
||
SVProgressHUD.dismiss()
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
@IBAction func collectBtn(_ sender: Any) {
|
||
Analytics.logEvent("touch_collect", parameters: nil)
|
||
if isLoggedIn(){
|
||
if type == 1{
|
||
let model1 = WA_3DModel()
|
||
model1.preview = self.model.preview
|
||
model1.title = self.model.title
|
||
model1.thumbnail = self.model.thumbnail
|
||
model1.is_free = self.model.is_free
|
||
model1.category = self.model.category
|
||
model1.id = self.model.id
|
||
model1.cnt_like = self.model.cnt_like
|
||
sc4kManager.shared.addHistoryItem(item: model1)
|
||
}else{
|
||
let model1 = WallpaperData()
|
||
model1.original = self.modeltype.original
|
||
model1.previewThumb = self.modeltype.previewThumb
|
||
model1.source = self.modeltype.source
|
||
model1.banner = self.modeltype.banner
|
||
scjpgManager.shared.addHistoryItem(item: model1)
|
||
}
|
||
SVProgressHUD.showInfo(withStatus: "Collection successful")
|
||
DispatchQueue.global().asyncAfter(deadline: .now() + 2.0) {
|
||
SVProgressHUD.dismiss()
|
||
}
|
||
}else{
|
||
let vc = WA_LoginVC()
|
||
navigationController?.pushViewController(vc, animated: true)
|
||
}
|
||
|
||
|
||
|
||
}
|
||
|
||
|
||
|
||
@IBAction func previewBtn(_ sender: Any) {
|
||
Analytics.logEvent("touch_preview", parameters: nil)
|
||
UIView.animate(withDuration: 0.5, animations: {
|
||
self.bgView.frame.origin.y += 0
|
||
self.bgView.alpha = 0
|
||
self.backBtn.isHidden = true
|
||
})
|
||
|
||
showView()
|
||
}
|
||
|
||
// 手势识别器的处理方法
|
||
@objc func viewTapped() {
|
||
// 根据当前 UIView 的位置和透明度进行不同的动画
|
||
if bgView.frame.origin.y == UIScreen.main.bounds.height - bgView.frame.height {
|
||
// 当 UIView 在底部时,执行向下移动并渐变消失的动画
|
||
UIView.animate(withDuration: 0.5, animations: {
|
||
self.bgView.frame.origin.y += self.bgView.frame.height
|
||
self.bgView.alpha = 0
|
||
self.backBtn.isHidden = true
|
||
})
|
||
} else {
|
||
|
||
self.backBtn.isHidden = false
|
||
// 当 UIView不在底部时,执行向上移动并渐变显示的动画
|
||
UIView.animate(withDuration: 0.5, animations: {
|
||
self.bgView.frame.origin.y -= self.bgView.frame.height
|
||
self.bgView.alpha = 1
|
||
})
|
||
}
|
||
}
|
||
|
||
func showView() {
|
||
// 加载预览视图并添加到当前视图控制器的视图上
|
||
let previewView = Bundle.main.loadNibNamed("WA_PreView", owner: nil, options: nil)?.first as! WA_PreView
|
||
previewView.flashView.layer.cornerRadius = 25
|
||
previewView.cameraV.layer.cornerRadius = 25
|
||
|
||
previewView.touchBlock = {
|
||
|
||
self.backBtn.isHidden = false
|
||
// 当 UIView 不在底部时,执行向上移动并渐变显示的动画
|
||
UIView.animate(withDuration: 0.5, animations: {
|
||
self.bgView.frame.origin.y -= 0
|
||
self.bgView.alpha = 1
|
||
})
|
||
}
|
||
view.addSubview(previewView)
|
||
|
||
|
||
// 设置预览视图初始位置在屏幕左侧外面
|
||
previewView.frame.origin.x = -previewView.frame.width
|
||
|
||
// 执行动画
|
||
UIView.animate(withDuration: 1.0) {
|
||
// 将预览视图移回主视图中心
|
||
previewView.frame = self.view.frame
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
|
||
@IBAction func shareBtn(_ sender: Any) {
|
||
Analytics.logEvent("touch_share", parameters: nil)
|
||
|
||
self.activityView.startAnimating()
|
||
|
||
// 创建要分享的图片
|
||
guard let image = self.preimageV.image else {
|
||
SVProgressHUD.showInfo(withStatus: "Can't find the image to share")
|
||
DispatchQueue.global().asyncAfter(deadline: .now() + 2.0) {
|
||
SVProgressHUD.dismiss()
|
||
}
|
||
print("找不到要分享的图片")
|
||
return
|
||
}
|
||
|
||
// 创建要分享的对象数组
|
||
let items: [Any] = [image]
|
||
|
||
// 创建 UIActivityViewController 实例
|
||
let activityViewController = UIActivityViewController(activityItems: items, applicationActivities: nil)
|
||
|
||
// 设置 UIActivityViewController 的主题
|
||
activityViewController.modalPresentationStyle = .popover
|
||
|
||
// 在 iPad 上设置 UIActivityViewController 的位置
|
||
if let popoverController = activityViewController.popoverPresentationController {
|
||
popoverController.sourceView = self.view
|
||
popoverController.sourceRect = CGRect(x: self.view.bounds.midX, y: self.view.bounds.midY, width: 0, height: 0)
|
||
popoverController.permittedArrowDirections = []
|
||
}
|
||
|
||
// 弹出分享视图
|
||
self.present(activityViewController, animated: true, completion: nil)
|
||
|
||
DispatchQueue.main.asyncAfter(deadline: .now() + 0){
|
||
self.activityView.stopAnimating()
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
@IBAction func back(_ sender: Any) {
|
||
isback = true
|
||
|
||
// if self.isadshow == true{
|
||
// DispatchQueue.main.asyncAfter(wallDeadline: .now() + 0.5) {
|
||
// if self.interstitialAd.isReady {
|
||
// self.interstitialAd.show()
|
||
// Analytics.logEvent("details_load_success", parameters: nil)
|
||
// self.setPostSHOW()
|
||
// let logMessage = """
|
||
// deviceId: \(StartManager.shared.devicID ?? "")
|
||
// localIp: \(StartManager.shared.localIP ?? "")
|
||
// "deviceId": \(StartManager.shared.devicID ?? ""),
|
||
// "localIp": \(StartManager.shared.localIP ?? ""),
|
||
// "remoteIp": \(StartManager.shared.publicIP ?? ""),
|
||
// "linkId": "",
|
||
// "packageName": "com.wallpapaer.hd.live.app",
|
||
// "gaid": \(StartManager.shared.idfaid ?? ""),
|
||
// "dataId": "",
|
||
// "shelfNumber": "壁纸详情返回",
|
||
// "succeed": \(StartManager.shared.succeed),
|
||
// "loadTime": \(StartManager.shared.loadTime ?? 0),
|
||
// "adPlatform": \(StartManager.shared.adPlatform ?? ""),
|
||
// "countryCode": \(StartManager.shared.countryCode ?? ""),
|
||
// "adId": \(StartManager.shared.adId ?? ""),
|
||
// "platformResponseTime": \(StartManager.shared.platformResponseTime ?? 0.0),
|
||
// "getIpResponseTime": \(StartManager.shared.getIpResponseTime ?? 0.0),
|
||
// "ecpm": \(StartManager.shared.ecpm ?? 0.0),
|
||
// "dsp": \(StartManager.shared.dsp ?? ""),
|
||
// "network": \(StartManager.shared.network ?? "")
|
||
// """
|
||
// AppDelegate.shared.addLogMessage(logMessage)
|
||
// }else{
|
||
// self.navigationController?.popViewController(animated: true)
|
||
// }
|
||
// }
|
||
// }else{
|
||
// self.navigationController?.popViewController(animated: true)
|
||
// }
|
||
|
||
|
||
let issureready = newInterstitialAdManager?.isAdReady()
|
||
if self.isadshow == true{
|
||
if ((issureready) != nil) {
|
||
newInterstitialAdManager?.show(from: self)
|
||
}else{
|
||
self.navigationController?.popViewController(animated: true)
|
||
}
|
||
|
||
}else{
|
||
self.navigationController?.popViewController(animated: true)
|
||
}
|
||
|
||
}
|
||
|
||
func setPostload(){
|
||
let url = "http://111.9.47.226:38080/top_selection/save_ad_load_log"
|
||
let parameters:[String : Any] = [
|
||
"deviceId": StartManager.shared.devicID ?? "",
|
||
"localIp": StartManager.shared.localIP ?? "",
|
||
"remoteIp": StartManager.shared.publicIP ?? "",
|
||
"linkId": "",
|
||
"packageName": "com.wallpapaer.hd.live.app",
|
||
"gaid": StartManager.shared.idfaid ?? "",
|
||
"dataId": "",
|
||
"shelfNumber":"壁纸详情页返回加载",
|
||
"succeed": StartManager.shared.succeed,
|
||
"loadTime": "",
|
||
"adPlatform": StartManager.shared.adPlatform ?? "",
|
||
"countryCode": StartManager.shared.countryCode ?? "",
|
||
"adId": StartManager.shared.adId ?? "",
|
||
"platformResponseTime": StartManager.shared.platformResponseTime ?? "",
|
||
"getIpResponseTime": StartManager.shared.getIpResponseTime ?? "",
|
||
"ecpm": StartManager.shared.ecpm ?? "",
|
||
"dsp": StartManager.shared.dsp ?? "",
|
||
"network": StartManager.shared.network ?? "",
|
||
"showStatus": 0,
|
||
"washParam": true,
|
||
]
|
||
|
||
|
||
let headers: HTTPHeaders = [
|
||
"Content-Type": "application/json"
|
||
]
|
||
|
||
NetworkManager.shared.postRequest(url: url, parameters: parameters, headers: headers) { result in
|
||
switch result {
|
||
case .success(let data):
|
||
print("Response:--- \(data)")
|
||
case .failure(let error):
|
||
print("Error:--- \(error)")
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
func setPostSHOW(){
|
||
let url = "http://111.9.47.226:38080/top_selection/save_ad_show_log"
|
||
let parameters:[String : Any] = [
|
||
"deviceId": StartManager.shared.devicID ?? "",
|
||
"localIp": StartManager.shared.localIP ?? "",
|
||
"remoteIp": StartManager.shared.publicIP ?? "",
|
||
"linkId": "",
|
||
"packageName": "com.wallpapaer.hd.live.app",
|
||
"gaid": StartManager.shared.idfaid ?? "",
|
||
"dataId": "",
|
||
"shelfNumber":"壁纸详情页返回展示",
|
||
"succeed": StartManager.shared.succeed,
|
||
"loadTime": "",
|
||
"adPlatform": StartManager.shared.adPlatform ?? "",
|
||
"countryCode": StartManager.shared.countryCode ?? "",
|
||
"adId": StartManager.shared.adId ?? "",
|
||
"platformResponseTime": StartManager.shared.platformResponseTime ?? "",
|
||
"getIpResponseTime": StartManager.shared.getIpResponseTime ?? "",
|
||
"ecpm": StartManager.shared.ecpm ?? "",
|
||
"dsp": StartManager.shared.dsp ?? "",
|
||
"network": StartManager.shared.network ?? "",
|
||
]
|
||
|
||
|
||
let headers: HTTPHeaders = [
|
||
"Content-Type": "application/json"
|
||
]
|
||
|
||
NetworkManager.shared.postRequest(url: url, parameters: parameters, headers: headers) { result in
|
||
switch result {
|
||
case .success(let data):
|
||
print("Response:--- \(data)")
|
||
case .failure(let error):
|
||
print("Error:--- \(error)")
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
|
||
}
|
||
extension WA_DetailsVC:MTGNewInterstitialBidAdDelegate{
|
||
|
||
// func newInterstitialBidAdShowSuccess(_ adManager: MTGNewInterstitialBidAdManager) {
|
||
// print("广告展示成功")
|
||
// }
|
||
|
||
func newInterstitialBidAdResourceLoadSuccess(_ adManager: MTGNewInterstitialBidAdManager) {
|
||
print("资源加载成功,表示可播放状态")
|
||
}
|
||
|
||
func newInterstitialBidAdLoadSuccess(_ adManager: MTGNewInterstitialBidAdManager) {
|
||
print("广告加载成功")
|
||
}
|
||
|
||
|
||
func newInterstitialBidAdLoadFail(_ error: any Error, adManager: MTGNewInterstitialBidAdManager) {
|
||
|
||
print("-----\(error)")
|
||
// print(" 广告加载失败")
|
||
}
|
||
|
||
func newInterstitialBidAdShowSuccess(withBidToken bidToken: String, adManager: MTGNewInterstitialBidAdManager) {
|
||
|
||
print("广告展示成功")
|
||
}
|
||
|
||
|
||
func newInterstitialBidAdShowFail(_ error: any Error, adManager: MTGNewInterstitialBidAdManager) {
|
||
print("广告展示失败")
|
||
}
|
||
|
||
func newInterstitialBidAdPlayCompleted(_ adManager: MTGNewInterstitialBidAdManager) {
|
||
|
||
print("广告播放完全播放回调")
|
||
}
|
||
|
||
|
||
func newInterstitialBidAdEndCardShowSuccess(_ adManager: MTGNewInterstitialBidAdManager) {
|
||
print("视频播放完成后展示结果页")
|
||
}
|
||
|
||
func newInterstitialBidAdClicked(_ adManager: MTGNewInterstitialBidAdManager) {
|
||
|
||
print("广告被点击")
|
||
}
|
||
|
||
// 广告被关闭
|
||
func newInterstitialBidAdDidClosed(_ adManager: MTGNewInterstitialBidAdManager) {
|
||
print("广告被关闭")
|
||
if isback == true{
|
||
self.navigationController?.popViewController(animated: true)
|
||
}else{
|
||
DispatchQueue.global().asyncAfter(deadline: .now() + 1.5) {
|
||
DispatchQueue.main.asyncAfter(deadline: .now() + 0){
|
||
self.activityView.stopAnimating()
|
||
// self.view.makeToast("Save Success", duration: 1.5, position: .center)
|
||
// 创建一个 UIAlertController
|
||
let alertController = UIAlertController(title: "Successfully saved", message: "Do you need to set up a tutorial", preferredStyle: .alert)
|
||
|
||
// 添加一个取消按钮
|
||
alertController.addAction(UIAlertAction(title: "cancel", style: .cancel, handler: nil))
|
||
|
||
// 添加一个确定按钮
|
||
alertController.addAction(UIAlertAction(title: "Need", style: .default, handler: { action in
|
||
// 点击确定按钮后执行的操作
|
||
// print("点击了确定按钮")
|
||
let vc = WA_TipVC()
|
||
self.present(vc, animated: true)
|
||
}))
|
||
|
||
// 在当前视图控制器中 present 显示提示框
|
||
self.present(alertController, animated: true, completion: nil)
|
||
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
//extension WA_DetailsVC: MAAdDelegate
|
||
//{
|
||
// func createInterstitialAd()
|
||
// {
|
||
// interstitialAd = MAInterstitialAd(adUnitIdentifier: "880a042774979c3c")
|
||
// interstitialAd.delegate = self
|
||
//
|
||
// // Load the first ad
|
||
// interstitialAd.load()
|
||
// }
|
||
//
|
||
// // MARK: MAAdDelegate Protocol
|
||
//
|
||
// func didLoad(_ ad: MAAd)
|
||
// {
|
||
// // Interstitial ad is ready to be shown. 'interstitialAd.isReady' will now return 'true'
|
||
//
|
||
// // Reset retry attempt
|
||
// retryAttempt = 0
|
||
// StartManager.shared.succeed = true
|
||
//// StartManager.shared.loadTime = self.adLoadTime
|
||
// StartManager.shared.adPlatform = "MAX"
|
||
// StartManager.shared.countryCode = ALSdk.shared().configuration.countryCode
|
||
// StartManager.shared.adId = "880a042774979c3c"
|
||
// StartManager.shared.platformResponseTime = ad.requestLatency
|
||
// StartManager.shared.ecpm = Float(ad.revenue)
|
||
// StartManager.shared.dsp = ad.dspName
|
||
// StartManager.shared.network = ad.networkName
|
||
//
|
||
//
|
||
// setPostload()
|
||
// }
|
||
//
|
||
// func didFailToLoadAd(forAdUnitIdentifier adUnitIdentifier: String, withError error: MAError)
|
||
// {
|
||
// // Interstitial ad failed to load
|
||
// // We recommend retrying with exponentially higher delays up to a maximum delay (in this case 64 seconds)
|
||
//
|
||
// retryAttempt += 1
|
||
// let delaySec = pow(2.0, min(6.0, retryAttempt))
|
||
//
|
||
// DispatchQueue.main.asyncAfter(deadline: .now() + delaySec) {
|
||
// self.interstitialAd.load()
|
||
// }
|
||
// }
|
||
//
|
||
// func didDisplay(_ ad: MAAd)
|
||
// {
|
||
// // Pause your app's background audio
|
||
// }
|
||
//
|
||
// func didClick(_ ad: MAAd) {}
|
||
//
|
||
// func didHide(_ ad: MAAd)
|
||
// {
|
||
// // Resume your app's background audio
|
||
// // Interstitial ad is hidden. Pre-load the next ad
|
||
// interstitialAd.load()
|
||
// if isback == true{
|
||
// self.navigationController?.popViewController(animated: true)
|
||
// }else{
|
||
// DispatchQueue.global().asyncAfter(deadline: .now() + 1.5) {
|
||
// DispatchQueue.main.asyncAfter(deadline: .now() + 0){
|
||
// self.activityView.stopAnimating()
|
||
// // self.view.makeToast("Save Success", duration: 1.5, position: .center)
|
||
// // 创建一个 UIAlertController
|
||
// let alertController = UIAlertController(title: "Successfully saved", message: "Do you need to set up a tutorial", preferredStyle: .alert)
|
||
//
|
||
// // 添加一个取消按钮
|
||
// alertController.addAction(UIAlertAction(title: "cancel", style: .cancel, handler: nil))
|
||
//
|
||
// // 添加一个确定按钮
|
||
// alertController.addAction(UIAlertAction(title: "Need", style: .default, handler: { action in
|
||
// // 点击确定按钮后执行的操作
|
||
// // print("点击了确定按钮")
|
||
// let vc = WA_TipVC()
|
||
// self.present(vc, animated: true)
|
||
// }))
|
||
//
|
||
// // 在当前视图控制器中 present 显示提示框
|
||
// self.present(alertController, animated: true, completion: nil)
|
||
//
|
||
// }
|
||
// }
|
||
//
|
||
// }
|
||
//
|
||
// }
|
||
//
|
||
// func didFail(toDisplay ad: MAAd, withError error: MAError)
|
||
// {
|
||
// // Interstitial ad failed to display. We recommend loading the next ad
|
||
// interstitialAd.load()
|
||
// }
|
||
//}
|