|
@@ -114,7 +114,7 @@ extension KMAdvertisementManager {
|
|
|
@param data 传入参数 NSDictionary
|
|
|
@param isNeedLocalComparison 是否需要对比本地版本,如果不一样将会刷新
|
|
|
@return KMAdvertisementModel
|
|
|
- */
|
|
|
+ */
|
|
|
public func parseData(data: [NSDictionary], isNeedLocalComparison: Bool ,completion:(_ result: [KMAdvertisementInfo]) -> Void) -> Void {
|
|
|
//获取缓存数据
|
|
|
var isNeedSave = false
|
|
@@ -128,19 +128,19 @@ extension KMAdvertisementManager {
|
|
|
let jsonData: Data = jsonString.data(using: .utf8)!
|
|
|
let dict = try?JSONSerialization.jsonObject(with: jsonData)
|
|
|
let decoder = JSONDecoder()
|
|
|
- // decoder.dataDecodingStrategy = .base64
|
|
|
- // decoder.keyDecodingStrategy = .convertFromSnakeCase //带下划线命名
|
|
|
-
|
|
|
+ // decoder.dataDecodingStrategy = .base64
|
|
|
+ // decoder.keyDecodingStrategy = .convertFromSnakeCase //带下划线命名
|
|
|
+
|
|
|
decoder.nonConformingFloatDecodingStrategy = .convertFromString(positiveInfinity: "+∞", negativeInfinity: "-∞", nan: "NaN")
|
|
|
- #if DEBUG
|
|
|
+#if DEBUG
|
|
|
//MARK: 测试使用
|
|
|
var advertisementModel = try! decoder.decode(KMAdvertisementInfo.self, from: jsonData)
|
|
|
if (self.allowLoadContentData(data: advertisementModel)) {
|
|
|
resultArray.append(self.allowLoadItemData(advertisementModel))
|
|
|
isNeedSave = true
|
|
|
}
|
|
|
- #else
|
|
|
- // MARK: 此处try 使用 ? ,如果数据出问题 advertisementModel将无参数, 测试时使用!
|
|
|
+#else
|
|
|
+ // MARK: 此处try 使用 ? ,如果数据出问题 advertisementModel将无参数, 测试时使用!
|
|
|
var advertisementModel = try? decoder.decode(KMAdvertisementInfo.self, from: jsonData)
|
|
|
if (advertisementModel != nil) {
|
|
|
if (self.allowLoadContentData(data: advertisementModel!)) {
|
|
@@ -148,7 +148,7 @@ extension KMAdvertisementManager {
|
|
|
isNeedSave = true
|
|
|
}
|
|
|
}
|
|
|
- #endif
|
|
|
+#endif
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -182,34 +182,99 @@ extension KMAdvertisementManager {
|
|
|
return result
|
|
|
}
|
|
|
|
|
|
-// func allowLoadContentData(data: KMAdvertisementModel) -> Bool {
|
|
|
-// var result = false
|
|
|
-//
|
|
|
-// let time: NSInteger = NSInteger(KMAdvertisementTimeStampConversion.getCurrentTimeInterval())!
|
|
|
-// let startTime: NSInteger = NSInteger(data.startTime!)!
|
|
|
-// let endTime: NSInteger = NSInteger(data.endTime!)!
|
|
|
-// let platform = configuration.platform
|
|
|
-// let subscribeType = configuration.subscribeType
|
|
|
-// let version = data.version ?? "1.0"
|
|
|
-// let localVersion = self.getLocalVersion()
|
|
|
-// let hidden = data.hidden ?? false
|
|
|
-//
|
|
|
-// if (time >= startTime &&
|
|
|
-// time <= endTime &&
|
|
|
-// platform == data.platform &&
|
|
|
-// self.compareVersion(nowVersion:localVersion, newVersion: version) &&
|
|
|
-// (subscribeType == data.subscribeType || data.subscribeType == .all) &&
|
|
|
-// !hidden) {
|
|
|
-// result = true
|
|
|
-// }
|
|
|
-// return result
|
|
|
-// }
|
|
|
+ // func allowLoadContentData(data: KMAdvertisementModel) -> Bool {
|
|
|
+ // var result = false
|
|
|
+ //
|
|
|
+ // let time: NSInteger = NSInteger(KMAdvertisementTimeStampConversion.getCurrentTimeInterval())!
|
|
|
+ // let startTime: NSInteger = NSInteger(data.startTime!)!
|
|
|
+ // let endTime: NSInteger = NSInteger(data.endTime!)!
|
|
|
+ // let platform = configuration.platform
|
|
|
+ // let subscribeType = configuration.subscribeType
|
|
|
+ // let version = data.version ?? "1.0"
|
|
|
+ // let localVersion = self.getLocalVersion()
|
|
|
+ // let hidden = data.hidden ?? false
|
|
|
+ //
|
|
|
+ // if (time >= startTime &&
|
|
|
+ // time <= endTime &&
|
|
|
+ // platform == data.platform &&
|
|
|
+ // self.compareVersion(nowVersion:localVersion, newVersion: version) &&
|
|
|
+ // (subscribeType == data.subscribeType || data.subscribeType == .all) &&
|
|
|
+ // !hidden) {
|
|
|
+ // result = true
|
|
|
+ // }
|
|
|
+ // return result
|
|
|
+ // }
|
|
|
|
|
|
//过滤item是否显示
|
|
|
func allowLoadItemData(_ data: KMAdvertisementInfo) -> KMAdvertisementInfo {
|
|
|
+ let advertisement = data.advertisement
|
|
|
+ advertisement?.content = self.canShow(data: (advertisement?.content)!)
|
|
|
+ data.advertisement = advertisement
|
|
|
+
|
|
|
+ let recommondContent = data.recommondContent
|
|
|
+ let recommondContentOther = recommondContent?.recommondContentOther
|
|
|
+ let recommondContentPDFPro = recommondContent?.recommondContentPDFPro
|
|
|
+
|
|
|
+ recommondContentOther?.content = self.canShow(data: (recommondContentOther?.content)!)
|
|
|
+ recommondContentPDFPro?.content = self.canShow(data: (recommondContentPDFPro?.content)!)
|
|
|
+
|
|
|
+ recommondContent?.recommondContentOther = recommondContentOther
|
|
|
+ recommondContent?.recommondContentPDFPro = recommondContentPDFPro
|
|
|
+ data.recommondContent = recommondContent
|
|
|
+
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
+ func canShow(data: [KMAdvertisementItemInfo]) -> [KMAdvertisementItemInfo] {
|
|
|
+ var dataArray: [KMAdvertisementItemInfo] = []
|
|
|
+ for item in data {
|
|
|
+ let currentTime = Int(NSDate.init().timeIntervalSince1970 * 1000)
|
|
|
+ if item.show == "1" &&
|
|
|
+ currentTime > Int(item.startTime ?? "0") ?? currentTime &&
|
|
|
+ currentTime < Int(item.endTime ?? "0") ?? currentTime {
|
|
|
+
|
|
|
+ var canAdd = true
|
|
|
+ if item.subscriptionType == "1" {
|
|
|
+ if KMPurchaseManager.manager.state == .subscription {
|
|
|
+ canAdd = false
|
|
|
+ }
|
|
|
+ } else if item.subscriptionType == "2" {
|
|
|
+ if KMPurchaseManager.manager.state != .subscription {
|
|
|
+ canAdd = false
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if canAdd {
|
|
|
+ dataArray.append(item)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return dataArray
|
|
|
+ }
|
|
|
+
|
|
|
+// + (BOOL)checkAdvertisementValid:(KMRecommondInfo *)info {
|
|
|
+// #if DEBUG
|
|
|
+// [[NSUserDefaults standardUserDefaults] removeObjectForKey:info.versionKey];
|
|
|
+// #endif
|
|
|
+// if ([[NSUserDefaults standardUserDefaults] objectForKey:info.versionKey]) {
|
|
|
+// return NO;
|
|
|
+// }
|
|
|
+// if (!info.show) {
|
|
|
+// return NO;
|
|
|
+// }
|
|
|
+// if (info.showType == KMRecommondShowType_Lite) {
|
|
|
+// if ([[IAPProductsManager defaultManager] isAvailableAllFunction]) {
|
|
|
+// return NO;
|
|
|
+// }
|
|
|
+// } else if (info.showType == KMRecommondShowType_Pro) {
|
|
|
+// if (![[IAPProductsManager defaultManager] isAvailableAllFunction]) {
|
|
|
+// return NO;
|
|
|
+// }
|
|
|
+// }
|
|
|
+// return YES;
|
|
|
+// }
|
|
|
+
|
|
|
// func allowLoadItemData(_ data: KMAdvertisementModel) -> KMAdvertisementModel {
|
|
|
// //获取缓存数据
|
|
|
// if (UserDefaults.standard.object(forKey: "KMAdvertisementShowScroll_iOS") == nil) {
|