소스 검색

【综合】广告远程联调优化

niehaoyu 11 달 전
부모
커밋
4f700edd16

+ 2 - 2
PDF Office/PDF Master/AppDelegate.swift

@@ -86,7 +86,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
 
         //Firebase RemoteConfig
 #if VERSION_FREE
-        KMKdanRemoteConfig.remoteConfig().fetch { _status, error in
+        KMKdanRemoteConfig.remoteConfig.fetch { _status, error in
             
         }
 #endif
@@ -109,7 +109,7 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
         
         NSApp.servicesProvider = self
         
-        KMKdanRemoteConfig.remoteConfig().fetchWithRemoteConfigCompletionHandler { status, error in
+        KMKdanRemoteConfig.remoteConfig.fetchWithRemoteConfigCompletionHandler { status, error in
             
         }
 

+ 23 - 12
PDF Office/PDF Master/Class/AD/KMAdsManager.swift

@@ -50,6 +50,12 @@ class KMAdsManager: NSObject {
             adView.removeFromSuperview()
             adView.adPosY = posY
             view.addSubview(adView)
+            
+            if adView.adsInfo == nil {
+                self.refreshDataInfo(with: adView)
+            } else {
+                adView.reloadData()
+            }
             return false
         }
         
@@ -79,6 +85,13 @@ class KMAdsManager: NSObject {
 //        adView.tag = kADViewWithTag
         adView.beginSheetModalForView(view: view, directions: directions, animated: animated, completionHandler: handler)
         adViews.append(adView)
+        
+        self.refreshDataInfo(with: adView)
+        
+        return true
+    }
+    
+    func refreshDataInfo(with adView: KMAdsWebView) {
         if KMAdsInfoManager.shareInstance.adsInfoArrM != nil {
             if KMAdsInfoManager.shareInstance.adsInfoArrM.count > 0 {
                 let adsInfo = KMAdsInfoManager.shareInstance.getRandomAdsInfo()
@@ -92,8 +105,6 @@ class KMAdsManager: NSObject {
                 adView.isHidden = true
             }
         }
-        
-        return true
     }
 
     func adView(at view: NSView) -> KMAdsWebView? {
@@ -185,7 +196,7 @@ class KMAdsManager: NSObject {
                 if UserDefaults.standard.integer(forKey: kTodayLoadingNumber) != 0 {
                     todayLoadingNumber = UserDefaults.standard.integer(forKey: kTodayLoadingNumber)
                 }
-                if todayLoadingNumber >= KMKdanRemoteConfig.remoteConfig().refreshAdsRate() {
+                if todayLoadingNumber >= KMKdanRemoteConfig.remoteConfig.refreshAdsRate() {
                     return false
                 }
             }
@@ -210,7 +221,7 @@ class KMAdsManager: NSObject {
                 if UserDefaults.standard.integer(forKey: kTodayLoadingNumberAfter) != 0 {
                     todayLoadingNumber = UserDefaults.standard.integer(forKey: kTodayLoadingNumberAfter)
                 }
-                if todayLoadingNumber >= KMKdanRemoteConfig.remoteConfig().refreshAdsRateEvaluateAfter() {
+                if todayLoadingNumber >= KMKdanRemoteConfig.remoteConfig.refreshAdsRateEvaluateAfter() {
                     return false
                 }
             }
@@ -245,9 +256,9 @@ class KMAdsManager: NSObject {
             var closeDate = 0
 
             if !UserDefaults.standard.bool(forKey: "kUserHaveClickRateUsKey") {
-                closeDate = KMKdanRemoteConfig.remoteConfig().closeIntervalDate()
+                closeDate = KMKdanRemoteConfig.remoteConfig.closeIntervalDate()
             } else {
-                closeDate = KMKdanRemoteConfig.remoteConfig().closeIntervalDateEvaluateAfter()
+                closeDate = KMKdanRemoteConfig.remoteConfig.closeIntervalDateEvaluateAfter()
             }
 
             let tCurDate = Date(timeIntervalSinceNow: TimeInterval(-closeDate))
@@ -258,9 +269,9 @@ class KMAdsManager: NSObject {
             }
         } else {
             if !UserDefaults.standard.bool(forKey: "kUserHaveClickRateUsKey") {
-                tAdsFlag = KMKdanRemoteConfig.remoteConfig().isDisplayAds()
+                tAdsFlag = KMKdanRemoteConfig.remoteConfig.isDisplayAds()
             } else {
-                tAdsFlag = KMKdanRemoteConfig.remoteConfig().isDisplayAdsEvaluateAfter()
+                tAdsFlag = KMKdanRemoteConfig.remoteConfig.isDisplayAdsEvaluateAfter()
             }
         }
 
@@ -281,15 +292,15 @@ extension KMAdsManager: AdsWebViewDelegate {
         self.updateShowAdsDate()
 
         if !UserDefaults.standard.bool(forKey: "kUserHaveClickRateUsKey") {
-            self.appFreeTimeAdsCount = (self.appFreeTimeAdsCount + 1) % KMKdanRemoteConfig.remoteConfig().appEvaluateBeforeAdsCount()
+            self.appFreeTimeAdsCount = (self.appFreeTimeAdsCount + 1) % KMKdanRemoteConfig.remoteConfig.appEvaluateBeforeAdsCount()
             UserDefaults.standard.set(self.appFreeTimeAdsCount, forKey: "KMEvaluateBeforeCloseAdsNumbersKey")
-            if 0 == (self.appFreeTimeAdsCount % KMKdanRemoteConfig.remoteConfig().appEvaluateBeforeAdsCount()) {
+            if 0 == (self.appFreeTimeAdsCount % KMKdanRemoteConfig.remoteConfig.appEvaluateBeforeAdsCount()) {
                 self.showFreeTimeAdsInfo()
             }
         } else {
-            self.appFreeAfterTimeAdsCount = (self.appFreeAfterTimeAdsCount + 1) % KMKdanRemoteConfig.remoteConfig().appEvaluateAfterAdsCount()
+            self.appFreeAfterTimeAdsCount = (self.appFreeAfterTimeAdsCount + 1) % KMKdanRemoteConfig.remoteConfig.appEvaluateAfterAdsCount()
             UserDefaults.standard.set(self.appFreeAfterTimeAdsCount, forKey: "KMEvaluateAfterCloseAdsNumbersKey")
-            if 0 == (self.appFreeAfterTimeAdsCount % KMKdanRemoteConfig.remoteConfig().appEvaluateAfterAdsCount()) {
+            if 0 == (self.appFreeAfterTimeAdsCount % KMKdanRemoteConfig.remoteConfig.appEvaluateAfterAdsCount()) {
                 self.showFreeTimeAdsInfo()
             }
         }

+ 7 - 7
PDF Office/PDF Master/Class/AD/KMAdsWebView.swift

@@ -99,9 +99,9 @@ class KMAdsWebView: NSView, WKNavigationDelegate, CAAnimationDelegate {
             #endif
 
             if !UserDefaults.standard.bool(forKey: "kUserHaveClickRateUsKey") {
-                data = [KMKdanRemoteConfig.remoteConfig().displayHouseAdsUrl()]
+                data = [KMKdanRemoteConfig.remoteConfig.displayHouseAdsUrl()]
             } else {
-                data = [KMKdanRemoteConfig.remoteConfig().displayAdsUrl()]
+                data = [KMKdanRemoteConfig.remoteConfig.displayAdsUrl()]
             }
 
             #if DEBUG
@@ -216,9 +216,9 @@ class KMAdsWebView: NSView, WKNavigationDelegate, CAAnimationDelegate {
         }
         var interval = 0
         if !UserDefaults.standard.bool(forKey: "kUserHaveClickRateUsKey") {
-            interval = KMKdanRemoteConfig.remoteConfig().refreshAdsDate()
+            interval = KMKdanRemoteConfig.remoteConfig.refreshAdsDate()
         } else {
-            interval = KMKdanRemoteConfig.remoteConfig().refreshAdsDateEvaluateAfter()
+            interval = KMKdanRemoteConfig.remoteConfig.refreshAdsDateEvaluateAfter()
         }
         timer = Timer.scheduledTimer(timeInterval: TimeInterval(interval), target: self, selector: #selector(adsWebView_Switch), userInfo: nil, repeats: true
 
@@ -229,7 +229,7 @@ class KMAdsWebView: NSView, WKNavigationDelegate, CAAnimationDelegate {
 
     @objc func adsWebView_Switch() {
         DispatchQueue.main.async {
-            if !KMKdanRemoteConfig.remoteConfig().isDisplayAds() || !KMAdsManager.defaultManager.checkTheDate() || !KMAdsManager.defaultManager.isValidLastShowAds() {
+            if !KMKdanRemoteConfig.remoteConfig.isDisplayAds() || !KMAdsManager.defaultManager.checkTheDate() || !KMAdsManager.defaultManager.isValidLastShowAds() {
                 self.removeFromSuperview()
                 return
             }
@@ -320,9 +320,9 @@ class KMAdsWebView: NSView, WKNavigationDelegate, CAAnimationDelegate {
         }
         var interval = 0
         if !UserDefaults.standard.bool(forKey: "kUserHaveClickRateUsKey") {
-            interval = KMKdanRemoteConfig.remoteConfig().refreshAdsDate()
+            interval = KMKdanRemoteConfig.remoteConfig.refreshAdsDate()
         } else {
-            interval = KMKdanRemoteConfig.remoteConfig().refreshAdsDateEvaluateAfter()
+            interval = KMKdanRemoteConfig.remoteConfig.refreshAdsDateEvaluateAfter()
         }
         timer = Timer.scheduledTimer(timeInterval: TimeInterval(interval), target: self, selector: #selector(adsWebView_Switch), userInfo: nil, repeats: true)
 

+ 1 - 1
PDF Office/PDF Master/Class/Common/Tools/KMTools.swift

@@ -368,7 +368,7 @@ extension KMTools {
     // 打开 [更多产品] 网站
     @objc class func openMoreProductWebsite() {
         var tStrUrl: String?
-        if KMKdanRemoteConfig.remoteConfig().showHelp_More_RecommendLink() {
+        if KMKdanRemoteConfig.remoteConfig.showHelp_More_RecommendLink() {
     #if VERSION_FREE
             tStrUrl = "https://www.pdfreaderpro.com/product?utm_source=MacAppLite&utm_campaign=ProductLink&utm_medium=PdfProduct"
     #else

+ 3 - 3
PDF Office/PDF Master/Class/KMAdvertisement/Manager/KMAdvertisementManager.swift

@@ -139,7 +139,7 @@ extension KMAdvertisementManager {
         
         var resultArray:[KMAdvertisementInfo] = []
         for model in data {
-            if (!(cacheData.contains(model) && isNeedLocalComparison)) {
+            if (isNeedLocalComparison) {
                 if (self.allowLoadData(data: model)) {
                     let jsonString: String = (model["detail"] as? String) ?? ""
                     let jsonData: Data = jsonString.data(using: .utf8)!
@@ -252,11 +252,11 @@ extension KMAdvertisementManager {
                 
                 var canAdd = true
                 if item.subscriptionType == "1" {
-                    if KMPurchaseManager.manager.state == .subscription {
+                    if (IAPProductsManager.default().isAvailableAllFunction()) {
                         canAdd = false
                     }
                 } else if item.subscriptionType == "2" {
-                    if KMPurchaseManager.manager.state != .subscription {
+                    if (IAPProductsManager.default().isAvailableAllFunction() == false) {
                         canAdd = false
                     }
                 }

+ 18 - 20
PDF Office/PDF Master/Third Pard Library/RemoteConfig /KMFirebaseRemoteConfig.swift

@@ -25,6 +25,8 @@ typealias KMRemoteConfigFetchCompletion = (_ status: KMRemoteConfigFetchStatus,
     private let kAppEvaluateBeforeAdsCountKey = "appEvaluateBeforeAdsCount"
     private let kAppEvaluateAfterAdsCountKey = "appEvaluateAfterAdsCount"
 
+    static let remoteConfig = KMKdanRemoteConfig()
+    
     private var remoteConfigDatas: [String: Any] = [:]
     private var userInfo: [String: Any] = [:]
 
@@ -43,10 +45,6 @@ typealias KMRemoteConfigFetchCompletion = (_ status: KMRemoteConfigFetchStatus,
         return config
     }()
 
-    static func remoteConfig() -> KMKdanRemoteConfig {
-        return KMKdanRemoteConfig()
-    }
-
     override init() {
         super.init()
         let mainBundleString = Bundle.main.bundleIdentifier ?? ""
@@ -179,64 +177,64 @@ typealias KMRemoteConfigFetchCompletion = (_ status: KMRemoteConfigFetchStatus,
 
     func refreshAdsRate() -> Int {
         var adsRate = userInfo[kRefreshAdsRateDayKey] as? Int ?? 0
-        if let value = remoteConfigDatas[kRefreshAdsRateDayKey] as? Int {
-            adsRate = value
+        if let value = remoteConfigDatas[kRefreshAdsRateDayKey] as? String {
+            adsRate = Int(value)!
         }
         return adsRate
     }
 
     func refreshAdsRateEvaluateAfter() -> Int {
         var adsRate = userInfo[kRefreshAdsRateDayEvaluateAfterKey] as? Int ?? 0
-        if let value = remoteConfigDatas[kRefreshAdsRateDayEvaluateAfterKey] as? Int {
-            adsRate = value
+        if let value = remoteConfigDatas[kRefreshAdsRateDayEvaluateAfterKey] as? String {
+            adsRate = Int(value)!
         }
         return adsRate
     }
 
     func refreshAdsDate() -> Int {
         var adsDate = userInfo[kRefreshAdsDateDayKey] as? Int ?? 180
-        if let value = remoteConfigDatas[kRefreshAdsDateDayKey] as? Int {
-            adsDate = value
+        if let value = remoteConfigDatas[kRefreshAdsDateDayKey] as? String {
+            adsDate = Int(value)!
         }
         return adsDate
     }
 
     func refreshAdsDateEvaluateAfter() -> Int {
         var adsDate = userInfo[kRefreshAdsDateDayEvaluateAfterKey] as? Int ?? 180
-        if let value = remoteConfigDatas[kRefreshAdsDateDayEvaluateAfterKey] as? Int {
-            adsDate = value
+        if let value = remoteConfigDatas[kRefreshAdsDateDayEvaluateAfterKey] as? String {
+            adsDate = Int(value)!
         }
         return adsDate
     }
 
     func closeIntervalDate() -> Int {
         var intervalDate = userInfo[kCloseIntervalDateDayKey] as? Int ?? 0
-        if let value = remoteConfigDatas[kCloseIntervalDateDayKey] as? Int {
-            intervalDate = value
+        if let value = remoteConfigDatas[kCloseIntervalDateDayKey] as? String {
+            intervalDate = Int(value)!
         }
         return intervalDate
     }
 
     func closeIntervalDateEvaluateAfter() -> Int {
         var intervalDate = userInfo[kCloseIntervalDateDayEvaluateAfterKey] as? Int ?? 0
-        if let value = remoteConfigDatas[kCloseIntervalDateDayEvaluateAfterKey] as? Int {
-            intervalDate = value
+        if let value = remoteConfigDatas[kCloseIntervalDateDayEvaluateAfterKey] as? String {
+            intervalDate = Int(value)!
         }
         return intervalDate
     }
 
     func appEvaluateBeforeAdsCount() -> Int {
         var evaluateCount = userInfo[kAppEvaluateBeforeAdsCountKey] as? Int ?? 1
-        if let value = remoteConfigDatas[kAppEvaluateBeforeAdsCountKey] as? Int {
-            evaluateCount = value
+        if let value = remoteConfigDatas[kAppEvaluateBeforeAdsCountKey] as? String {
+            evaluateCount = Int(value)!
         }
         return evaluateCount
     }
 
     func appEvaluateAfterAdsCount() -> Int {
         var evaluateCount = userInfo[kAppEvaluateAfterAdsCountKey] as? Int ?? 1
-        if let value = remoteConfigDatas[kAppEvaluateAfterAdsCountKey] as? Int {
-            evaluateCount = value
+        if let value = remoteConfigDatas[kAppEvaluateAfterAdsCountKey] as? String {
+            evaluateCount = Int(value)!
         }
         return evaluateCount
     }