You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

143 lines
4.8 KiB

//
// UTTracker.h
// miniUTInterface
//
// Created by 宋军 on 14-10-14.
// Copyright (c) 2014年 ___SONGJUN___. All rights reserved.
//
#import <Foundation/Foundation.h>
//#import <UIKit/UIViewController.h>
//#import <UIKit/UIWebView.h>
@class UTDSDKInfo;
typedef enum _UTPageStatus{
UT_H5_IN_WebView//设置容器中的H5页面事件的eventid为2001,不设置默认为2006
} UTPageStatus;
@interface UTTracker : NSObject
@property (readonly,copy) UTDSDKInfo * mSdkinfo;
-(id) initWithTrackId:(NSString *) pTrackId __deprecated;
-(id) initWithAppKey:(NSString *) pAppkey
appsecret:(NSString *) pAppSecret
authcode:(NSString *) pAuthCode
securitySign:(BOOL) securitySign;
-(id) initWithTracker:(UTTracker *) pTracker trackid:(NSString *) pTrackId;
-(NSString *) getAppKey;
-(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