Commit 387541a6 authored by 井庆林's avatar 井庆林

..

parents ba0f2e96 4ea007a8
...@@ -349,7 +349,7 @@ static dispatch_queue_t _normalQueue; ...@@ -349,7 +349,7 @@ static dispatch_queue_t _normalQueue;
[dict setObject:page.pageName forKey:@"page_name"]; [dict setObject:page.pageName forKey:@"page_name"];
[dict setObject:page.businessId?:@"" forKey:@"business_id"]; [dict setObject:page.businessId?:@"" forKey:@"business_id"];
[dict setObject:page.referer?:@"" forKey:@"referrer"]; [dict setObject:page.referer?:@"" forKey:@"referrer"];
[dict setObject:page.refererLink ? : @[] forKey:@"referer_link"]; [dict setObject:page.referrerLink ? : @[] forKey:@"referrer_link"];
[dict setObject:@(0) forKey:@"fake"]; [dict setObject:@(0) forKey:@"fake"];
[dict setObject:page.referrerId ? : @"" forKey:@"referrer_id"]; [dict setObject:page.referrerId ? : @"" forKey:@"referrer_id"];
[dict setObject:page.extraParam ? : @"" forKey:@"extra_param"]; [dict setObject:page.extraParam ? : @"" forKey:@"extra_param"];
...@@ -372,11 +372,12 @@ static dispatch_queue_t _normalQueue; ...@@ -372,11 +372,12 @@ static dispatch_queue_t _normalQueue;
* @since 0.0.1 * @since 0.0.1
*/ */
- (NSDictionary *)prepareDictionaryForEvent:(NSString *)eventName attributes:(NSDictionary *)attributes{ - (NSDictionary *)prepareDictionaryForEvent:(NSString *)eventName attributes:(NSDictionary *)attributes{
[self catchNullForEvent:eventName attributes:attributes]; NSArray *referrerLink = _sharedClient.visibleController.referrerLink;
NSArray *refererLink = _sharedClient.visibleController.refererLink; if (![eventName isEqualToString:@"page_view"]) {
NSMutableDictionary *attributesParams = [NSMutableDictionary dictionaryWithDictionary:attributes]; NSMutableDictionary *attributesParams = [NSMutableDictionary dictionaryWithDictionary:attributes];
[attributesParams setValue:refererLink ? : @[] forKey:@"referer_Link"]; [attributesParams setValue:referrerLink ? : @[] forKey:@"referrer_link"];
attributes = attributesParams; attributes = attributesParams;
}
[self catchNullForEvent:eventName attributes:attributes]; [self catchNullForEvent:eventName attributes:attributes];
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init]; NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
@try { @try {
...@@ -619,12 +620,6 @@ static dispatch_queue_t _normalQueue; ...@@ -619,12 +620,6 @@ static dispatch_queue_t _normalQueue;
phobosLog(@"两个埋点outTime 时间差------%f", (fabsl(objOutTime - pageOutTime))); phobosLog(@"两个埋点outTime 时间差------%f", (fabsl(objOutTime - pageOutTime)));
checkTimeError = YES; checkTimeError = YES;
phobosLog(@"%s____数据校验失败,PV埋点可能重复", __func__); phobosLog(@"%s____数据校验失败,PV埋点可能重复", __func__);
/*
dispatch_async(dispatch_get_main_queue(), ^{
NSString *stringTitle = [NSString stringWithFormat:@"%@ PV埋点可能重复", data];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:stringTitle message:nil delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alertView show];
});*/
break; break;
} }
} }
......
...@@ -78,7 +78,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -78,7 +78,7 @@ NS_ASSUME_NONNULL_BEGIN
/** /**
获取上一个页面链路的page_name link by 7.20.0 如果有此页面有page_name则添加 , 没有添加"" 获取上一个页面链路的page_name link by 7.20.0 如果有此页面有page_name则添加 , 没有添加""
*/ */
@property (nonatomic, copy) NSArray *refererLink; @property (nonatomic, copy) NSArray *referrerLink;
@end @end
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
- (void)initReferer; - (void)initReferer;
/** /**
// 只适用于链路中页面浏览PVLink 添加 refererLink 参数 // // 适用于链路中页面浏览事件的统计 添加 refererLink 参数
*/ */
- (void)initRefererLink; - (void)initRefererLink;
......
...@@ -45,23 +45,27 @@ ...@@ -45,23 +45,27 @@
} }
} }
// 只适用于链路中页面浏览PVLink 添加 refererLink 参数 // 适用于链路中页面浏览事件的统计 添加 refererLink 参数
- (void)initRefererLink { - (void)initRefererLink {
if ([self isKindOfClass:[UIViewController class]]) { if ([self isKindOfClass:[UIViewController class]]) {
// 分present与navigation两种情况 // 分present与navigation两种情况
UIViewController *me = (UIViewController *)self; UIViewController *me = (UIViewController *)self;
if (me.isPush.intValue) { // 如果是推送进来的,结果页面的referrerLink 为空数组, 此处添加过滤。
objc_setAssociatedObject(self, @selector(referrerLink), @[], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
return;
}
if (me.presentingViewController != nil) { if (me.presentingViewController != nil) {
// app全局只有一个navigation,发现此时用navigation.topViewController presentViewController时,最终使用的是navigation弹出的 // app全局只有一个navigation,发现此时用navigation.topViewController presentViewController时,最终使用的是navigation弹出的
// 所以此处要判断,如果是navigation弹出,最后还是要定位到topViewController // 所以此处要判断,如果是navigation弹出,最后还是要定位到topViewController
if ([me.presentingViewController isKindOfClass:[UINavigationController class]]) { if ([me.presentingViewController isKindOfClass:[UINavigationController class]]) {
UIViewController *top = ((UINavigationController *)me.presentingViewController).topViewController; UIViewController *top = ((UINavigationController *)me.presentingViewController).topViewController;
NSMutableArray *tempRefererLink = [NSMutableArray arrayWithArray:top.refererLink]; NSMutableArray *tempLink = [NSMutableArray arrayWithArray:top.referrerLink];
[tempRefererLink addObject:top.pageName]; [tempLink addObject:top.pageName];
objc_setAssociatedObject(self, @selector(pageLink), tempRefererLink, OBJC_ASSOCIATION_COPY); objc_setAssociatedObject(self, @selector(referrerLink), tempLink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
} else { } else {
NSMutableArray *tempRefererLink = [NSMutableArray arrayWithArray:me.presentingViewController.refererLink]; NSMutableArray *tempLink = [NSMutableArray arrayWithArray:me.presentingViewController.referrerLink];
[tempRefererLink addObject:me.presentingViewController.pageName]; [tempLink addObject:me.presentingViewController.pageName];
objc_setAssociatedObject(self, @selector(pageLink), tempRefererLink, OBJC_ASSOCIATION_COPY); objc_setAssociatedObject(self, @selector(referrerLink), tempLink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
} }
} else { } else {
NSArray *navigationPool = ((UIViewController *)self).navigationController.viewControllers; NSArray *navigationPool = ((UIViewController *)self).navigationController.viewControllers;
...@@ -70,20 +74,21 @@ ...@@ -70,20 +74,21 @@
return ; return ;
} }
UIViewController *controller = navigationPool[refererIndex]; UIViewController *controller = navigationPool[refererIndex];
NSMutableArray *tempRefererLink = [NSMutableArray arrayWithArray:controller.refererLink]; NSMutableArray *tempLink = [NSMutableArray arrayWithArray:controller.referrerLink];
[tempRefererLink addObject:controller.pageName]; [tempLink addObject:controller.pageName];
objc_setAssociatedObject(self, @selector(refererLink), tempRefererLink, OBJC_ASSOCIATION_COPY); objc_setAssociatedObject(self, @selector(referrerLink), tempLink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
} }
} }
} }
- (void)setRefererLink:(NSArray *)refererLink { - (void)setReferrerLink:(NSArray *)referrerLink {
objc_setAssociatedObject(self, @selector(refererLink), refererLink, OBJC_ASSOCIATION_COPY); objc_setAssociatedObject(self, @selector(referrerLink), referrerLink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
} }
-(NSArray *)refererLink {
NSArray *refererLink = objc_getAssociatedObject(self, @selector(refererLink)); -(NSArray *)referrerLink {
return refererLink; NSArray *referrerLink = objc_getAssociatedObject(self, @selector(referrerLink));
return referrerLink;
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment