Bläddra i källkod

【2025】【埋点】Home界面埋点处理

niehaoyu 1 vecka sedan
förälder
incheckning
3ff6c824d8

+ 0 - 9
PDF Office/PDF Master/Class/Analytics/KMAnalytics+KMExtensions.swift

@@ -1,9 +0,0 @@
-//
-//  KMAnalytics+KMExtensions.swift
-//  PDF Reader Pro
-//
-//  Created by User-Tangchao on 2024/9/6.
-//
-
-import Foundation
-

+ 16 - 2
PDF Office/PDF Master/Class/Analytics/KMAnalytics.swift

@@ -44,8 +44,22 @@ import Cocoa
     }
 
     // 发送事件
-    static func trackEvent(eventName: String, parameters: [String : Any]? = nil) {
- 
+    static func trackEvent(eventName: String, parameters: [String : String]? = nil) {
+        if eventName.count < 1 { return }
+
+        let keyStr: String = parameters?.keys.first ?? ""
+        let vStr: String = parameters?.values.first ?? ""
+#if DEBUG
+        NSLog("###-FireBaseEvent-(%@)-properties(%@):(%@)",eventName,keyStr,vStr)
+#endif
+        
+        var theParams: [String : String] = [:]
+        for (key, value) in parameters ?? [:] {
+            theParams["itemname"] = key
+            theParams["action"] = value
+        }
+        
+//        Analytics.logEvent(event, parameters: theParams)
     }
      
 }

+ 30 - 0
PDF Office/PDF Master/KMClass/KMHomeViewController/KMNHomeViewController.swift

@@ -444,58 +444,86 @@ extension KMNHomeViewController {
     func quickToolsActionWith(_ type: HomeQuickToolType) {
         switch type {
         case .Batch:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Batch"])
+            
             fastTool_Batch()
             
             break
         case .MergePDF:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Merge"])
+            
             fastTool_MergePDF()
             
             break
         case .ImageToPDF:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_ImagetoPDF"])
+            
             imageToPDFAction()
             
             break
         case .OCR:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_OCR"])
+            
             fastTool_OCR()
             
             break
         case .ConvertPDF:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Convert"])
+            
             fastTool_ConvertPDF()
             
             break
         case .PDFToWord:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_PDFtoWord"])
+            
             fastTool_ConvertPDF()
             
             break
         case .PDFToExcel:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_PDFtoExcel"])
+            
             fastTool_PDFToExcel()
             
             break
         case .Compression:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Compress"])
+            
             fastTool_Compression()
             
             break
         case .PDFToPPT:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_PDFtoPPT"])
+            
             fastTool_PDFToPPT()
             
             break
         case .Security:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Security"])
+            
             fastTool_Security()
             
             break
         case .FileCompare:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Compare"])
+            
             fastTool_FileCompare()
             
             break
         case .Watermark:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Watermark"])
+            
             fastTool_Watermark()
             
             break
         case .Insert:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Insert"])
+            
             fastTool_Insert()
             
             break
         case .Extract:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Extract"])
+            
             fastTool_Extract()
             
             break
@@ -503,6 +531,8 @@ extension KMNHomeViewController {
             
             break
         case .Print:
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_Print"])
+            
             fastTool_Print()
             
             break

+ 14 - 0
PDF Office/PDF Master/KMClass/KMHomeViewController/Views/KMHomeOpenView/KMHomeOpenView.swift

@@ -132,6 +132,8 @@ class KMHomeOpenView: BaseXibView {
     
     //MARK: - Action
     @objc func openFileAction(_ sender: NSView) {
+        KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_OpenFiles"])
+        
         let openPanel = NSOpenPanel()
         openPanel.allowedFileTypes = ["pdf", "PDF"]
         openPanel.allowsMultipleSelection = false
@@ -145,6 +147,8 @@ class KMHomeOpenView: BaseXibView {
     }
     
     @objc func createFileAction(_ sender: NSView) {
+        KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_CreatePDFs"])
+        
         showGroupView()
     }
 }
@@ -168,22 +172,32 @@ extension KMHomeOpenView: ComponentGroupDelegate {
         if let selItem = menuItemProperty {
             let index = group?.menuItemArr.firstIndex(of: selItem)
             if index == 0 {
+                KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_NewfromFile"])
+                
                 if let _windowC = NSApp.mainWindow?.windowController as? KMBrowserWindowController {
                     _windowC.newFromFile()
                 }
             } else if index == 1 {
+                KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_NewBlankPage"])
+                
                 if let _windowC = NSApp.mainWindow?.windowController as? KMBrowserWindowController {
                     _windowC.newBlankPage()
                 }
             } else if index == 2 {
+                KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_NewfromWeb"])
+                
                 if let _windowC = NSApp.mainWindow?.windowController as? KMBrowserWindowController {
                     _windowC.newFromWebPage()
                 }
             } else if index == 3 {
+                KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_NewfromClipboard"])
+                
                 if let _windowC = NSApp.mainWindow?.windowController as? KMBrowserWindowController {
                     _windowC.newFromClipboard()
                 }
             } else if index == 5 {
+                KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_NewfromScanner"])
+                
                 if let _windowC = NSApp.mainWindow?.windowController as? KMBrowserWindowController {
                     _windowC.importFromScanner()
                 }

+ 4 - 0
PDF Office/PDF Master/KMClass/KMHomeViewController/Views/KMHomeQuickToolsView/KMHomeQuickToolsView.swift

@@ -258,10 +258,14 @@ extension KMHomeQuickToolsView: ComponentGroupDelegate {
     
     public func componentGroupDidSelect(group: ComponentGroup?, menuItemProperty: ComponentMenuitemProperty?) {
         if menuItemProperty?.identifier == "CollapseToolsID" {
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_CollapseTools"])
+            
             KMNHomeQuickToolManager.defaultManager.collapseTools = !KMNHomeQuickToolManager.defaultManager.collapseTools
             
             self.delegate?.homeQuickToolsViewDidCollapseStateChanged?(self)
         } else if menuItemProperty?.identifier == "ManageToolsID" {
+            KMAnalytics.trackEvent(eventName: "Home", parameters: ["Tools":"Tools_ManageTools"])
+            
             self.delegate?.homeQuickToolsViewDidManageTools?(self)
         }
     }

+ 0 - 10
PDF Office/PDF Reader Pro.xcodeproj/project.pbxproj

@@ -108,9 +108,6 @@
 		6536FDE32C9C1EF2004A0FB9 /* KMNoteReplyHanddler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6536FDE22C9C1EF2004A0FB9 /* KMNoteReplyHanddler.swift */; };
 		6536FDE42C9C1EF2004A0FB9 /* KMNoteReplyHanddler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6536FDE22C9C1EF2004A0FB9 /* KMNoteReplyHanddler.swift */; };
 		6536FDE52C9C1EF2004A0FB9 /* KMNoteReplyHanddler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6536FDE22C9C1EF2004A0FB9 /* KMNoteReplyHanddler.swift */; };
-		654A5A8C2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 654A5A8B2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift */; };
-		654A5A8D2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 654A5A8B2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift */; };
-		654A5A8E2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 654A5A8B2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift */; };
 		654E63312CF5993C00F6323F /* KMNOutlineModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 654E63302CF5993C00F6323F /* KMNOutlineModel.swift */; };
 		654E63322CF5993C00F6323F /* KMNOutlineModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 654E63302CF5993C00F6323F /* KMNOutlineModel.swift */; };
 		654E63332CF5993C00F6323F /* KMNOutlineModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 654E63302CF5993C00F6323F /* KMNOutlineModel.swift */; };
@@ -5279,7 +5276,6 @@
 		BBF71F0E2D5A06E60043FFA2 /* CDSignatureDrawViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADDF83192B391A5C00A81A4E /* CDSignatureDrawViewController.swift */; };
 		BBF71F0F2D5A06E60043FFA2 /* KMNPreView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 655B91B32CCB47420080AE6E /* KMNPreView.swift */; };
 		BBF71F102D5A06E60043FFA2 /* KMInfoWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB986AEA2AD53AE800ADF172 /* KMInfoWindowController.swift */; };
-		BBF71F112D5A06E60043FFA2 /* KMAnalytics+KMExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 654A5A8B2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift */; };
 		BBF71F122D5A06E60043FFA2 /* KMTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB0A550F2A302DB700B6E84B /* KMTextField.swift */; };
 		BBF71F132D5A06E60043FFA2 /* KMBookmarkSheetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD055E492B72346E0035F824 /* KMBookmarkSheetView.swift */; };
 		BBF71F142D5A06E60043FFA2 /* CPDFListView+Sync.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD7D5CA82B906E36006562CD /* CPDFListView+Sync.swift */; };
@@ -6412,7 +6408,6 @@
 		65202DF62CE4803500A204B5 /* KMNBotaHeaderSearchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNBotaHeaderSearchView.swift; sourceTree = "<group>"; };
 		65202DFB2CE4827900A204B5 /* KMNBotaHeaderSearchView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNBotaHeaderSearchView.xib; sourceTree = "<group>"; };
 		6536FDE22C9C1EF2004A0FB9 /* KMNoteReplyHanddler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNoteReplyHanddler.swift; sourceTree = "<group>"; };
-		654A5A8B2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KMAnalytics+KMExtensions.swift"; sourceTree = "<group>"; };
 		654E63302CF5993C00F6323F /* KMNOutlineModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNOutlineModel.swift; sourceTree = "<group>"; };
 		655B91B32CCB47420080AE6E /* KMNPreView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KMNPreView.swift; sourceTree = "<group>"; };
 		655B91B82CCB47690080AE6E /* KMNPreView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KMNPreView.xib; sourceTree = "<group>"; };
@@ -11875,7 +11870,6 @@
 			isa = PBXGroup;
 			children = (
 				BB32BF222A5EA05900D11348 /* KMAnalytics.swift */,
-				654A5A8B2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift */,
 			);
 			path = Analytics;
 			sourceTree = "<group>";
@@ -18041,7 +18035,6 @@
 				BBF71F0E2D5A06E60043FFA2 /* CDSignatureDrawViewController.swift in Sources */,
 				BBF71F0F2D5A06E60043FFA2 /* KMNPreView.swift in Sources */,
 				BBF71F102D5A06E60043FFA2 /* KMInfoWindowController.swift in Sources */,
-				BBF71F112D5A06E60043FFA2 /* KMAnalytics+KMExtensions.swift in Sources */,
 				BBF71F122D5A06E60043FFA2 /* KMTextField.swift in Sources */,
 				BBF71F132D5A06E60043FFA2 /* KMBookmarkSheetView.swift in Sources */,
 				BB9BCEC92D65A3F600FADB43 /* KMCancelSubscribeSuccessCellView.swift in Sources */,
@@ -18118,7 +18111,6 @@
 				BB7BC4D82AD3D6B700D6BEE6 /* PDFListView+KMExtensions.swift in Sources */,
 				ADD3EBE22D116BAD005B711B /* KMCompressTool.m in Sources */,
 				ADBC2CFA299CA6B9006280C8 /* KMPrintDuplexPrintingSetView.swift in Sources */,
-				654A5A8C2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift in Sources */,
 				AD3AAD382B0B7B1900DE5FE7 /* KMCompareToolbar.swift in Sources */,
 				F337CC1C2CC6456D00D46AF4 /* KMNThumbnailBaseViewController.swift in Sources */,
 				ADFA8F092B579945002595A4 /* KMSearchFindView.swift in Sources */,
@@ -19685,7 +19677,6 @@
 				AD53749F2C65E1E1002DE248 /* KMThumbnailCache.swift in Sources */,
 				BB1D41D42B26D9BD00994EDC /* KMReusable.swift in Sources */,
 				BB8AA5442CC6711B0084F183 /* KMPDFConfig.swift in Sources */,
-				654A5A8D2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift in Sources */,
 				BB9BCFE62D65A43A00FADB43 /* KMMessageModel.m in Sources */,
 				ADD1B6C82942E83000C3FFF7 /* KMPrintBottomView.swift in Sources */,
 				BB6013852AD3A0E200A76FB2 /* CPDFTextWidgetAnnotation+PDFListView.swift in Sources */,
@@ -21065,7 +21056,6 @@
 				ADDF83A02B391A5D00A81A4E /* CDSignatureDrawViewController.swift in Sources */,
 				655B91B62CCB47420080AE6E /* KMNPreView.swift in Sources */,
 				BB986AED2AD53AE800ADF172 /* KMInfoWindowController.swift in Sources */,
-				654A5A8E2C8AE200001FBD4B /* KMAnalytics+KMExtensions.swift in Sources */,
 				BB0A55122A302DB700B6E84B /* KMTextField.swift in Sources */,
 				AD055E4C2B72346E0035F824 /* KMBookmarkSheetView.swift in Sources */,
 				BB9BCEC82D65A3F600FADB43 /* KMCancelSubscribeSuccessCellView.swift in Sources */,