| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- //
- // QSEventHandle.swift
- // QuickSearchLocation
- //
- // Created by Destiny on 2025/10/11.
- //
- import UIKit
- import GravityEngineSDK
- class QSEventHandle: NSObject {
- static let isDebug = false
- static func gravityPush(eventName: String, eventProps: [String:Any] = [:]){
- #if targetEnvironment(simulator)
- return;
- #else
- #endif
- if(isDebug){
- do {
- let jsonData = try JSONSerialization.data(withJSONObject: eventProps, options: .prettyPrinted)
- let jsonString = String(data: jsonData, encoding: .utf8)
- DispatchQueue.main.async {
- UIApplication.keyWindow?.toast(text: "event:\(eventName)\neventProps:\(String(describing: jsonString))")
- }
- print(jsonString ?? "转换失败")
- } catch {
- print("JSON 转换错误: \(error)")
- }
-
- }
- GravityEngineSDK.sharedInstance()?.track(eventName, properties: eventProps)
- }
- /// 上传单次事件到服务器
- ///
- /// - Parameters:
- /// - eventType: 事件类型(如 "track")暂时只有track 可以不传
- /// - eventName: 事件名称(如 "vip_center_exposure")
- /// - eventProps: 事件属性(字典形式,如 `["is_member": false, "entry_point": "open_now"]`)
- ///
- /// - Example:
- /// ```
- /// eventPush(
- /// eventType: "track",
- /// eventName: "button_click",
- /// eventProps: ["button_id": "submit"]
- /// )
- /// ```
- ///
- static func eventPush(eventType: String = "track", eventName: String, eventProps: [String:Any] = [:]){
- #if targetEnvironment(simulator)
- return;
- #else
- #endif
- if(isDebug){
- do {
- let jsonData = try JSONSerialization.data(withJSONObject: eventProps, options: .prettyPrinted)
- let jsonString = String(data: jsonData, encoding: .utf8)
- DispatchQueue.main.async {
- UIApplication.keyWindow?.toast(text: "event:\(eventName)\neventProps:\(String(describing: jsonString))")
- }
-
- print(jsonString ?? "转换失败")
- } catch {
- print("JSON 转换错误: \(error)")
- }
-
- }
- GravityEngineSDK.sharedInstance()?.track(eventName, properties: eventProps)
- QSLCentralEventManager.shared.uploadEvent(eventType: "track", eventName: eventName, eventProps: eventProps)
- }
-
- /// 上传多次事件到服务器
- ///
- /// - Parameters:
- /// - eventType: 事件类型(如 "track")暂时只有track 可以不传
- /// - eventName: 事件名称(如 "vip_center_exposure")
- /// - eventProps: 事件属性(字典数组形式,如 `[["is_member": false, "entry_point": "open_now"],...]`)
- ///
- /// - Example:
- /// ```
- /// eventPush(
- /// eventType: "track",
- /// eventName: "button_click",
- /// eventProps: ["button_id": "submit"]
- /// )
- /// ```
- ///
- static func eventArrPush(eventType: String = "track", eventName: String, eventPropsArr: [[String:Any]] = []){
- QSLCentralEventManager.shared.uploadEvent(eventType: "track", eventName: eventName, eventPropsArr: eventPropsArr)
- }
-
-
- }
|