广告bug修复,1.0.8提审
This commit is contained in:
parent
e0160146e3
commit
bddd0142a6
@ -2881,7 +2881,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0.7;
|
||||
MARKETING_VERSION = 1.0.8;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.hn.qinjiu.fableon;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
@ -2923,7 +2923,7 @@
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.0.7;
|
||||
MARKETING_VERSION = 1.0.8;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.hn.qinjiu.fableon;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
|
||||
|
||||
@ -67,10 +67,6 @@ extension UIViewController {
|
||||
|
||||
@objc func handleNavigationBack() {
|
||||
self.fa_toLastViewController(animated: true)
|
||||
if FARewardedAdManager.manager.isAdAvailable {
|
||||
FARewardedAdManager.manager.businessScene = .detailBack
|
||||
FARewardedAdManager.manager.show()
|
||||
}
|
||||
}
|
||||
|
||||
func fa_toLastViewController(animated: Bool) {
|
||||
|
||||
@ -133,6 +133,11 @@ class FACoinPackViewController: FAViewController {
|
||||
self.fa_setNavigationStyle()
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
FAOpenAdManager.manager.vcAllowedShowAd = false
|
||||
}
|
||||
|
||||
private func updateLayout() {
|
||||
stackView.fa_removeAllArrangedSubview()
|
||||
|
||||
|
||||
@ -25,7 +25,8 @@ class FAPlayerDetailControlView: JXPlayerListControlView {
|
||||
override var model: Any? {
|
||||
didSet {
|
||||
let model = self.model as? FAVideoInfoModel
|
||||
|
||||
self.bannerAdManager.shortPlayId = model?.short_play_id
|
||||
self.bannerAdManager.shortPlayVideoId = model?.short_play_video_id
|
||||
updateEp()
|
||||
}
|
||||
}
|
||||
@ -56,8 +57,12 @@ class FAPlayerDetailControlView: JXPlayerListControlView {
|
||||
didSet {
|
||||
playButton.setNeedsUpdateConfiguration()
|
||||
if isCurrent {
|
||||
self.bannerAdManager.loadAd()
|
||||
let model = self.model as? FAVideoInfoModel
|
||||
if model?.is_lock == false {
|
||||
self.bannerAdManager.loadAd()
|
||||
}
|
||||
} else {
|
||||
self.bannerAdManager.uploadCloseAdsHistory()
|
||||
self.bannerAdManager.cleanAd()
|
||||
}
|
||||
self.updateBannerAdLayout()
|
||||
@ -167,6 +172,7 @@ class FAPlayerDetailControlView: JXPlayerListControlView {
|
||||
}()
|
||||
|
||||
deinit {
|
||||
self.bannerAdManager.uploadCloseAdsHistory()
|
||||
NotificationCenter.default.removeObserver(self)
|
||||
}
|
||||
|
||||
|
||||
@ -83,8 +83,6 @@ class FAPlayerDetailViewController: JXPlayerListViewController {
|
||||
|
||||
requestDetailList()
|
||||
|
||||
self.fa_viewModel.loadNativeAd()
|
||||
|
||||
fa_setupLayout()
|
||||
|
||||
self.fa_viewModel.requestRecommandData()
|
||||
@ -168,6 +166,15 @@ class FAPlayerDetailViewController: JXPlayerListViewController {
|
||||
|
||||
// self.handleNavigationBack()
|
||||
}
|
||||
|
||||
override func handleNavigationBack() {
|
||||
super.handleNavigationBack()
|
||||
|
||||
if FARewardedAdManager.manager.isAdAvailable {
|
||||
FARewardedAdManager.manager.businessScene = .detailBack
|
||||
FARewardedAdManager.manager.show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension FAPlayerDetailViewController {
|
||||
@ -224,6 +231,8 @@ extension FAPlayerDetailViewController: JXPlayerListViewControllerDelegate, JXPl
|
||||
FARewardedAdManager.manager.shortPlayId = model?.short_play_id
|
||||
FARewardedAdManager.manager.shortPlayVideoId = model?.short_play_video_id
|
||||
}
|
||||
self.fa_viewModel.nativeAdManager.shortPlayId = model?.short_play_id
|
||||
self.fa_viewModel.nativeAdManager.shortPlayVideoId = model?.short_play_video_id
|
||||
}
|
||||
|
||||
func jx_shouldAutoScrollNextEpisode(_ viewController: JXPlayerListViewController) -> Bool {
|
||||
@ -242,8 +251,7 @@ extension FAPlayerDetailViewController {
|
||||
private func requestDetailList() {
|
||||
self.fa_viewModel.requestDetailData { [weak self] code in
|
||||
guard let self = self else { return }
|
||||
|
||||
|
||||
self.fa_viewModel.loadNativeAd()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -61,6 +61,9 @@ class FAShortDetailViewModel: JXPlayerListViewModel, ObservableObject {
|
||||
return manager
|
||||
}()
|
||||
|
||||
deinit {
|
||||
self.nativeAdManager.uploadCloseAdsHistory()
|
||||
}
|
||||
|
||||
func requestDetailData(indexPath: IndexPath? = nil, completer: ((_ code: Int) -> Void)?) {
|
||||
isShowRecommand = false
|
||||
@ -290,6 +293,8 @@ extension FAShortDetailViewModel {
|
||||
|
||||
///加载原生广告
|
||||
func loadNativeAd() {
|
||||
if self.nativeAdManager.hasShow || self.nativeAdManager.isAdAvailable { return }
|
||||
|
||||
self.nativeAdManager.load()
|
||||
}
|
||||
|
||||
|
||||
@ -113,6 +113,11 @@ class FAStoreViewController: FAViewController {
|
||||
fa_setNavigationStyle()
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
FAOpenAdManager.manager.vcAllowedShowAd = false
|
||||
}
|
||||
|
||||
private func buyFinish() {
|
||||
self.requestPayData()
|
||||
}
|
||||
|
||||
@ -79,6 +79,9 @@ class FABannerAdManager: NSObject {
|
||||
}
|
||||
}
|
||||
|
||||
var shortPlayId: String?
|
||||
var shortPlayVideoId: String?
|
||||
|
||||
private var startShowDate: Date?
|
||||
private var startLoadDate: Date?
|
||||
private var endLoadDate: Date?
|
||||
@ -99,7 +102,7 @@ class FABannerAdManager: NSObject {
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(didEnterBackgroundNotification), name: UIApplication.didEnterBackgroundNotification, object: nil)
|
||||
// NotificationCenter.default.addObserver(self, selector: #selector(didEnterBackgroundNotification), name: UIApplication.didEnterBackgroundNotification, object: nil)
|
||||
}
|
||||
|
||||
func loadAd() {
|
||||
@ -124,6 +127,7 @@ class FABannerAdManager: NSObject {
|
||||
self.isShowingAd = false
|
||||
self.startLoadDate = nil
|
||||
self.endLoadDate = nil
|
||||
self.startShowDate = nil
|
||||
}
|
||||
|
||||
private func updateLayout() {
|
||||
@ -133,6 +137,13 @@ class FABannerAdManager: NSObject {
|
||||
adView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
||||
}
|
||||
}
|
||||
|
||||
///上报关闭广告历史
|
||||
func uploadCloseAdsHistory() {
|
||||
guard let ad = self.bannerAd else { return }
|
||||
guard self.isShowingAd else { return }
|
||||
self.uploadAdsHistory(ad: ad, type: .close)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -170,7 +181,7 @@ extension FABannerAdManager: FABannerAdDelegate {
|
||||
}
|
||||
|
||||
func fa_bannerAdDidDismiss(ad: any FABannerAd) {
|
||||
self.uploadAdsHistory(ad: ad, type: .close)
|
||||
self.uploadCloseAdsHistory()
|
||||
self.delegate?.fa_bannerAdManagerDidDismiss?(manager: self)
|
||||
}
|
||||
|
||||
@ -211,6 +222,8 @@ extension FABannerAdManager {
|
||||
model.loading_time = max(0, loadTime)
|
||||
}
|
||||
model.view_seconds = showTime
|
||||
model.short_play_id = self.shortPlayId
|
||||
model.short_play_video_id = self.shortPlayVideoId
|
||||
model.ad_type = ad.adType.rawValue
|
||||
model.ads_id = ad.adUnitID
|
||||
model.ad_platform_key = ad.adPlatform
|
||||
@ -226,6 +239,8 @@ extension FABannerAdManager {
|
||||
let money = (NSNumber(string: ecpm)?.doubleValue ?? 0) / 1000
|
||||
|
||||
let model = FAUploadAdsPriceModel()
|
||||
model.short_play_id = self.shortPlayId
|
||||
model.short_play_video_id = self.shortPlayVideoId
|
||||
model.short_play_launch_id = ad.adUnitID
|
||||
model.type = ad.adType.rawValue
|
||||
model.agent_name = ad.adPlatform.rawValue
|
||||
|
||||
@ -21,9 +21,9 @@ class FAAdManager: NSObject {
|
||||
case me = "me"
|
||||
case reward = "reward"
|
||||
case splash = "splash"
|
||||
case banner = "banner"
|
||||
case banner = "detail_landscape"
|
||||
case open = "open"
|
||||
case native = "native"
|
||||
case native = "detail_stop"
|
||||
}
|
||||
|
||||
enum StatType: String, SmartCaseDefaultable {
|
||||
|
||||
@ -84,6 +84,9 @@ class FANativeAdManager: NSObject {
|
||||
}
|
||||
}
|
||||
|
||||
var shortPlayId: String?
|
||||
var shortPlayVideoId: String?
|
||||
|
||||
///广告是否在加载中
|
||||
private(set) var isLoadingAd = false
|
||||
///广告正在被展示
|
||||
@ -105,12 +108,12 @@ class FANativeAdManager: NSObject {
|
||||
}
|
||||
|
||||
deinit {
|
||||
NotificationCenter.default.removeObserver(self)
|
||||
// NotificationCenter.default.removeObserver(self)
|
||||
}
|
||||
|
||||
override init() {
|
||||
super.init()
|
||||
NotificationCenter.default.addObserver(self, selector: #selector(didEnterBackgroundNotification), name: UIApplication.didEnterBackgroundNotification, object: nil)
|
||||
// NotificationCenter.default.addObserver(self, selector: #selector(didEnterBackgroundNotification), name: UIApplication.didEnterBackgroundNotification, object: nil)
|
||||
}
|
||||
|
||||
|
||||
@ -122,7 +125,11 @@ class FANativeAdManager: NSObject {
|
||||
}
|
||||
guard !self.isLoadingAd else { return }
|
||||
|
||||
self.startLoadDate = nil
|
||||
self.endLoadDate = nil
|
||||
self.startShowDate = nil
|
||||
self.isLoadingAd = true
|
||||
|
||||
self.nativeAd = FATradPlusNativeAd()
|
||||
self.nativeAd?.adSize = self.contentSize
|
||||
self.nativeAd?.adView = contentView
|
||||
@ -143,6 +150,13 @@ class FANativeAdManager: NSObject {
|
||||
self.nativeAd?.show()
|
||||
}
|
||||
|
||||
///上报关闭广告历史
|
||||
func uploadCloseAdsHistory() {
|
||||
guard let ad = self.nativeAd else { return }
|
||||
guard self.isShowingAd else { return }
|
||||
self.uploadAdsHistory(ad: ad, type: .close)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
extension FANativeAdManager: FANativeAdDelegate {
|
||||
@ -179,7 +193,7 @@ extension FANativeAdManager: FANativeAdDelegate {
|
||||
}
|
||||
|
||||
func fa_nativeAdDidDismiss(ad: any FANativeAd) {
|
||||
self.uploadAdsHistory(ad: ad, type: .close)
|
||||
self.uploadCloseAdsHistory()
|
||||
self.delegate?.fa_nativeAdManagerDidDismiss?(manager: self)
|
||||
}
|
||||
|
||||
@ -218,6 +232,8 @@ extension FANativeAdManager {
|
||||
if let loadTime = loadTime {
|
||||
model.loading_time = max(0, loadTime)
|
||||
}
|
||||
model.short_play_id = self.shortPlayId
|
||||
model.short_play_video_id = self.shortPlayVideoId
|
||||
model.view_seconds = showTime
|
||||
model.ad_type = ad.adType.rawValue
|
||||
model.ads_id = ad.adUnitID
|
||||
@ -234,6 +250,8 @@ extension FANativeAdManager {
|
||||
let money = (NSNumber(string: ecpm)?.doubleValue ?? 0) / 1000
|
||||
|
||||
let model = FAUploadAdsPriceModel()
|
||||
model.short_play_id = self.shortPlayId
|
||||
model.short_play_video_id = self.shortPlayVideoId
|
||||
model.short_play_launch_id = ad.adUnitID
|
||||
model.type = ad.adType.rawValue
|
||||
model.agent_name = ad.adPlatform.rawValue
|
||||
|
||||
@ -52,6 +52,8 @@ class FATradPlusNativeAd: NSObject, FANativeAd {
|
||||
self.nativeAd?.setTemplateRenderSize(adSize)
|
||||
self.nativeAd?.delegate = self
|
||||
self.nativeAd?.loadAd()
|
||||
|
||||
self.delegate?.fa_nativeAdDidStartLoad(ad: self)
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -78,7 +80,7 @@ class FATradPlusNativeAd: NSObject, FANativeAd {
|
||||
extension FATradPlusNativeAd: TradPlusADNativeDelegate {
|
||||
|
||||
func tpNativeAdStartLoad(_ adInfo: [AnyHashable : Any]) {
|
||||
self.delegate?.fa_nativeAdDidStartLoad(ad: self)
|
||||
// self.delegate?.fa_nativeAdDidStartLoad(ad: self)
|
||||
}
|
||||
|
||||
func tpNativeAdLoaded(_ adInfo: [AnyHashable : Any]) {
|
||||
|
||||
@ -97,8 +97,12 @@ class FAOpenAdManager: NSObject {
|
||||
if isLoadingAd || isAdAvailable {
|
||||
return
|
||||
}
|
||||
startLoadDate = nil
|
||||
endLoadDate = nil
|
||||
startShowDate = nil
|
||||
isLoadingAd = true
|
||||
|
||||
|
||||
appOpenAd = FATradPlusOpenAd()
|
||||
appOpenAd?.loadAd()
|
||||
}
|
||||
@ -135,8 +139,7 @@ class FAOpenAdManager: NSObject {
|
||||
showAd()
|
||||
return
|
||||
}
|
||||
self.startLoadDate = nil
|
||||
self.endLoadDate = nil
|
||||
|
||||
|
||||
// 2. 如果没有就绪,标记等待并开始加载,同时开启超时保护
|
||||
isWaitingToShow = true
|
||||
|
||||
@ -114,10 +114,11 @@ class FARewardedAdManager: NSObject {
|
||||
if self.isLoadingAd { return }
|
||||
self.startLoadDate = nil
|
||||
self.endLoadDate = nil
|
||||
self.startShowDate = nil
|
||||
|
||||
self.isLoadingAd = true
|
||||
|
||||
self.businessScene = .main
|
||||
// self.businessScene = .main
|
||||
|
||||
self.rewardedAd = FATradPlusInterstitialAd()
|
||||
self.rewardedAd?.loadAd()
|
||||
@ -200,14 +201,6 @@ extension FARewardedAdManager {
|
||||
|
||||
extension FARewardedAdManager {
|
||||
|
||||
private func requestAdOverview() {
|
||||
|
||||
FAAPI.requestRewardedAdOverview { [weak self] list in
|
||||
guard let self = self else { return }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
func uploadAdsHistory(ad: any FARewardedAd, type: FAAdManager.StatType, viewSeconds: Int? = nil, errorMsg: String? = nil) {
|
||||
var loadTime: Int?
|
||||
if let startDate = self.startLoadDate, let endDate = self.endLoadDate {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user