酷店

UTTracker.h 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. //
  2. // UTTracker.h
  3. // miniUTInterface
  4. //
  5. // Created by 宋军 on 14-10-14.
  6. // Copyright (c) 2014年 ___SONGJUN___. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. //#import <UIKit/UIViewController.h>
  10. //#import <UIKit/UIWebView.h>
  11. typedef enum _UTPageStatus{
  12. UT_H5_IN_WebView//设置容器中的H5页面事件的eventid为2001,不设置默认为2006
  13. } UTPageStatus;
  14. @interface UTTracker : NSObject
  15. -(id) initWithTrackId:(NSString *) pTrackId;
  16. -(void) setGlobalProperty:(NSString *) pKey value:(NSString *) pValue;
  17. -(void) removeGlobalProperty:(NSString *) pKey;
  18. -(NSString *) getGlobalProperty:(NSString *) pKey;
  19. -(void) send:(NSDictionary *) pLogDict;
  20. #pragma mark 页面埋点
  21. /**
  22. * @brief 页面进入.
  23. *
  24. * @param pPageObject 页面对象,如viewcontroller指针
  25. *
  26. * @warning 调用说明:1.必须和pageDisAppear配对使用,否则不会成功埋点
  27. * 2.确定页面名称优先级:updatePageName > NSStringFromClass(pObject.class)
  28. *
  29. * 最佳位置:若是viewcontroller页面,则需在viewDidAppear函数内调用
  30. */
  31. -(void) pageAppear:(id) pPageObject;
  32. /**
  33. * @brief 页面进入.
  34. *
  35. * @param pPageObject 页面对象,如viewcontroller指针
  36. * @param pPageName 页面名称,如Page_Detail
  37. *
  38. * @warning 调用说明:1.必须和pageDisAppear配对使用,否则不会成功埋点
  39. * 2.确定页面名称优先级:updatePageName > pPageName > NSStringFromClass(pObject.class)
  40. * 若当调用pageAppear时已知页面名称,强烈建议使用该接口
  41. * 最佳位置:若是viewcontroller页面,则需在viewDidAppear函数内调用
  42. */
  43. -(void) pageAppear:(id) pPageObject withPageName:(NSString *) pPageName;
  44. /**
  45. * @brief 页面离开.
  46. *
  47. * @param pPageObject 页面对象,如viewcontroller指针
  48. *
  49. * @warning 调用说明:必须和pageAppear配对使用,否则不会成功埋点
  50. *
  51. * 最佳位置:若是viewcontroller页面,则需在viewDidDisAppear函数内调用
  52. */
  53. -(void) pageDisAppear:(id) pPageObject;
  54. /**
  55. * @brief 更新页面业务参数.
  56. *
  57. * @param pPageObject 页面对象,如viewcontroller指针
  58. * @param pProperties 业务参数,kv对
  59. *
  60. * @warning 调用说明:必须在pageDisAppear之前调用
  61. *
  62. * 最佳位置:在pageDisAppear之前调用即可
  63. */
  64. -(void) updatePageProperties:(id) pPageObject properties:(NSDictionary *) pProperties;
  65. /**
  66. * @brief 更新页面业务参数.
  67. *
  68. * @param pProperties 传给下一个页面业务参数,kv对
  69. *
  70. * @warning 调用说明:必须在下一个页面pageAppear之前调用,否则会携带错误
  71. *
  72. * 最佳位置:必须在下一个页面pageAppear之前调用
  73. */
  74. -(void) updateNextPageProperties:(NSDictionary *) pProperties;
  75. #pragma mark 页面埋点的辅助函数
  76. /**
  77. * @brief 更新页面名称.
  78. *
  79. * @param pPageObject 页面对象,如viewcontroller指针
  80. * @param pPageName 更新后的页面名称
  81. *
  82. * @warning 调用说明:只有当调用pageAppear时还未知页面名称,后续可使用该接口更新
  83. *
  84. * 最佳位置:在pageDisAppear之前调用
  85. */
  86. -(void) updatePageName:(id) pPageObject pageName:(NSString *) pPageName;
  87. /**
  88. * @brief 更新页面url.
  89. *
  90. * @param pPageObject 页面对象,如viewcontroller指针
  91. * @param pUrl 页面对应的url
  92. *
  93. * @warning 调用说明:如手淘统一导航将每次页面跳转的url塞给对应的viewcontroller
  94. *
  95. * 最佳位置:在pageDisAppear之前调用
  96. */
  97. -(void) updatePageUrl:(id) pPageObject url:(NSURL *) pUrl;
  98. /**
  99. * @brief 更新页面状态.
  100. *
  101. * @param pPageObject 页面对象,如viewcontroller指针
  102. * @param aStatus 页面状态 enum类型
  103. *
  104. * @warning 调用说明:告知页面处于某些特殊的业务场景,如回退等
  105. *
  106. * 最佳位置:必须在pageAppear之前调用
  107. */
  108. -(void) updatePageStatus:(id) pPageObject status:(UTPageStatus) aStatus;
  109. -(void) skipPage:(id) pPageObject;
  110. - (void) ctrlClicked:(NSString *)controlName onPage:(NSObject *) pageName args:(NSDictionary *) dict;
  111. @end