// // UTTracker.h // miniUTInterface // // Created by 宋军 on 14-10-14. // Copyright (c) 2014年 ___SONGJUN___. All rights reserved. // #import //#import //#import typedef enum _UTPageStatus{ UT_H5_IN_WebView//设置容器中的H5页面事件的eventid为2001,不设置默认为2006 } UTPageStatus; @interface UTTracker : NSObject -(id) initWithTrackId:(NSString *) pTrackId; -(void) setGlobalProperty:(NSString *) pKey value:(NSString *) pValue; -(void) removeGlobalProperty:(NSString *) pKey; -(NSString *) getGlobalProperty:(NSString *) pKey; -(void) send:(NSDictionary *) pLogDict; #pragma mark 页面埋点 /** * @brief 页面进入. * * @param pPageObject 页面对象,如viewcontroller指针 * * @warning 调用说明:1.必须和pageDisAppear配对使用,否则不会成功埋点 * 2.确定页面名称优先级:updatePageName > NSStringFromClass(pObject.class) * * 最佳位置:若是viewcontroller页面,则需在viewDidAppear函数内调用 */ -(void) pageAppear:(id) pPageObject; /** * @brief 页面进入. * * @param pPageObject 页面对象,如viewcontroller指针 * @param pPageName 页面名称,如Page_Detail * * @warning 调用说明:1.必须和pageDisAppear配对使用,否则不会成功埋点 * 2.确定页面名称优先级:updatePageName > pPageName > NSStringFromClass(pObject.class) * 若当调用pageAppear时已知页面名称,强烈建议使用该接口 * 最佳位置:若是viewcontroller页面,则需在viewDidAppear函数内调用 */ -(void) pageAppear:(id) pPageObject withPageName:(NSString *) pPageName; /** * @brief 页面离开. * * @param pPageObject 页面对象,如viewcontroller指针 * * @warning 调用说明:必须和pageAppear配对使用,否则不会成功埋点 * * 最佳位置:若是viewcontroller页面,则需在viewDidDisAppear函数内调用 */ -(void) pageDisAppear:(id) pPageObject; /** * @brief 更新页面业务参数. * * @param pPageObject 页面对象,如viewcontroller指针 * @param pProperties 业务参数,kv对 * * @warning 调用说明:必须在pageDisAppear之前调用 * * 最佳位置:在pageDisAppear之前调用即可 */ -(void) updatePageProperties:(id) pPageObject properties:(NSDictionary *) pProperties; /** * @brief 更新页面业务参数. * * @param pProperties 传给下一个页面业务参数,kv对 * * @warning 调用说明:必须在下一个页面pageAppear之前调用,否则会携带错误 * * 最佳位置:必须在下一个页面pageAppear之前调用 */ -(void) updateNextPageProperties:(NSDictionary *) pProperties; #pragma mark 页面埋点的辅助函数 /** * @brief 更新页面名称. * * @param pPageObject 页面对象,如viewcontroller指针 * @param pPageName 更新后的页面名称 * * @warning 调用说明:只有当调用pageAppear时还未知页面名称,后续可使用该接口更新 * * 最佳位置:在pageDisAppear之前调用 */ -(void) updatePageName:(id) pPageObject pageName:(NSString *) pPageName; /** * @brief 更新页面url. * * @param pPageObject 页面对象,如viewcontroller指针 * @param pUrl 页面对应的url * * @warning 调用说明:如手淘统一导航将每次页面跳转的url塞给对应的viewcontroller * * 最佳位置:在pageDisAppear之前调用 */ -(void) updatePageUrl:(id) pPageObject url:(NSURL *) pUrl; /** * @brief 更新页面状态. * * @param pPageObject 页面对象,如viewcontroller指针 * @param aStatus 页面状态 enum类型 * * @warning 调用说明:告知页面处于某些特殊的业务场景,如回退等 * * 最佳位置:必须在pageAppear之前调用 */ -(void) updatePageStatus:(id) pPageObject status:(UTPageStatus) aStatus; -(void) skipPage:(id) pPageObject; - (void) ctrlClicked:(NSString *)controlName onPage:(NSObject *) pageName args:(NSDictionary *) dict; @end