QSLGravityManager.swift 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. //
  2. // QSLGravityManager.swift
  3. // QuickSearchLocation
  4. //
  5. // Created by Destiny on 2024/12/23.
  6. //
  7. import Foundation
  8. import GravityEngineSDK
  9. var gravityInstance: GravityEngineSDK?
  10. class QSLGravityManager {
  11. func initGE() {
  12. #if targetEnvironment(simulator)
  13. return;
  14. #else
  15. #endif
  16. // 引力引擎
  17. let config = GEConfig()
  18. config.appid = QSLGravityConst.appid
  19. config.accessToken = QSLGravityConst.accessToken
  20. GravityEngineSDK.start(with: config)
  21. let instance = GravityEngineSDK.sharedInstance(withAppid: config.appid)
  22. gravityInstance = instance
  23. // 开启自动采集
  24. instance?.enableAutoTrack(GravityEngineAutoTrackEventType.eventTypeAll)
  25. print("启动引力引擎")
  26. let idfa = QSLApi.params["idfa"] as? String ?? ""
  27. let idfv = QSLApi.params["idfv"] as? String ?? ""
  28. let version = QSLApi.params["appVersionCode"] as? Int ?? 100
  29. instance?.initializeGravityEngine(withAsaEnable: true, withCaid1: "", withCaid2: "", withSyncAttribution: true, withChannel: "AppStore", withSuccessCallback: { response in
  30. print("gravity engine initialize success, response is---", response)
  31. if let clickCom = response["click_company"] as? String {
  32. QSLGuideusersToCommentManager.commentShare.clickCompanyChannel = clickCom
  33. }
  34. self.requestConfig()
  35. // 检查订单
  36. QSLBaseManager.shared.initPayCheck()
  37. QSEventHandle.eventPush(eventName: QSLGravityConst.launch_show)
  38. if let clientId = gravityInstance?.getCurrentClientId() {
  39. QSLBaseManager.shared.uploadClientId(clientId: clientId)
  40. }
  41. }, withErrorCallback: { error in
  42. print("gravity engine initialize failed, and error is", error)
  43. // 检查订单
  44. QSLBaseManager.shared.initPayCheck()
  45. self.requestConfig()
  46. })
  47. //开始统计时长
  48. QSLStatisticsUserTimeManager.shared.startTracking()
  49. }
  50. func requestConfig(){
  51. var isAttr = false
  52. if((UserDefaults.standard.value(forKey: "QSAttribution")) != nil){
  53. if let attr = UserDefaults.standard.value(forKey: "QSAttribution") as? Bool {
  54. isAttr = attr
  55. }
  56. }
  57. QSLNetwork().request(.confGlobal(dict: ["attribution":isAttr,"clickCompany":QSLGuideusersToCommentManager.commentShare.clickCompanyChannel])) { response in
  58. var model = response.mapObject(QSLConfModel.self, modelKey: "data")
  59. model.loginPayEnable = false
  60. QSLCacheManager.cacheConfModel(model)
  61. } fail: { code, msg in
  62. if(QSLCacheManager.getModel() == nil){
  63. let model = QSLConfModel.init()
  64. QSLCacheManager.cacheConfModel(model)
  65. }
  66. }
  67. }
  68. }