ios 無碼統計埋點

2021-07-27 06:08:20 字數 2370 閱讀 6337

第一種方式就是業務**與統計**相分離,利用runtime的特性,具體操作如下

定義工具類

@inte***ce

whookutility : 

nsobject

+ (void

)swizzlinginclass:(class)cls originalselector:(

sel)originalselector swizzledselector:(

sel)swizzledselector;

@end

#import 

+ (void

)swizzlinginclass:(class)cls originalselector:(

sel)originalselector swizzledselector:(

sel)swizzledselector  

else }

對於以上的函式需要有以下說明:

1 上面的函式主要作用就是交換兩個方法的實現,主要的三句**是:

method

originalmethod = 

class_getinstancemethod

(class, originalselector);

method

swizzledmethod = 

class_getinstancemethod

(class, swizzledselector);

method_exchangeimplementations

(originalmethod, swizzledmethod);

讓我舉個栗子��:比如你需要統計乙個viewcontroller的生命週期開始和結束,那一搬情況下是不是需要在它的

如果在每個頁面裡面都這樣寫,那麼統計這一塊的**耦合很高,這樣很不好。現在有乙個解決方法,利用runtime特性hook住

的demo。

2 除了函式的主要作用的三句**那class_addmethod 

class_replacemethod 的作用是什麼呢

假如你hook的函式並不存在比如隨意乙個函式viewwillshow 那麼這兩句**就稍微有點有作用了,至少你在你hook的

那個類裡面執行[self

performselector:@selector(viewwillshow) withobject:nil]不會崩潰。

(前提是你已經定義好了交換的函式哦)。總的來說只要你不莫名其妙的寫出hook不存在的函式,這兩個函式是沒用的。

即使hook了不存在的函式也不會崩潰的。如果你發現這兩句**還有其它的作用,可以交流一下~

現在我們來使用一下以上的類

建乙個基於uiviewcontroller的類別

#import 

"uiviewcontroller+userstatics.h"

#import 

"whookutility.h"

@implementation

uiviewcontroller (userstatics)

+ (void

)load ); }

#pragma mark - method swizzling

bool

bool

)animated 是我自己在類別裡面定義的函式,

bool

bool

)animated

裡面有句** [

self

- (void

bool

)animated

- (void

bool

)animated

#import 

"uicontrol+userstatics.h"

#import 

"whookutility.h"

@implementation

uicontrol (userstatics)

+ (void

)load ); }

#pragma mark - method swizzling

- (void

)swiz_sendaction:(

sel)action to:(

id)target forevent:(

uievent

*)event;

- (void

)performuserstastisticsaction:(

sel)action to:(

id)target forevent:(

uievent

*)event;

但是這種方法有乙個突出的問題解決不了:無法交換**函式

你如果想要監聽webview的**函式,tableview的**函式那就無法用這種方法了。

CSS 埋點統計

html head lang en meta charset utf 8 meta name viewport content width device width,initial scale 1,minimum scale 1,maximum scale 1,user scalable no ti...

埋點 什麼是埋點?埋點的實現方式?

資料產生 資料採集 資料處理 資料分析 資料探勘 產品優化 針對特定使用者行為或事件進行捕獲 處理和傳送的相關技術及其實施過程。用來跟蹤使用者使用狀況和優化產品。技術實質 監聽軟體執行中的事件,當需要關注的事件發生時,進行判斷和捕獲。注意 明確事件發生的時間點 判別條件。埋點原則 1 獲取目標資料 ...

百度 Google 埋點統計(Vue篇)

var hmt hmt window.hmt hmt 必須把 hmt掛載到window下,否則找不到 function router.beforeeach to,from next next 注意事項 易出現的錯誤 頁面 安裝狀態 未生效 檢查一下頁面 中是否包含以下 需要去掉 去除掉 referr...