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