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

..

parents ba0f2e96 4ea007a8
......@@ -349,7 +349,7 @@ static dispatch_queue_t _normalQueue;
[dict setObject:page.pageName forKey:@"page_name"];
[dict setObject:page.businessId?:@"" forKey:@"business_id"];
[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:page.referrerId ? : @"" forKey:@"referrer_id"];
[dict setObject:page.extraParam ? : @"" forKey:@"extra_param"];
......@@ -372,11 +372,12 @@ static dispatch_queue_t _normalQueue;
* @since 0.0.1
*/
- (NSDictionary *)prepareDictionaryForEvent:(NSString *)eventName attributes:(NSDictionary *)attributes{
[self catchNullForEvent:eventName attributes:attributes];
NSArray *refererLink = _sharedClient.visibleController.refererLink;
NSArray *referrerLink = _sharedClient.visibleController.referrerLink;
if (![eventName isEqualToString:@"page_view"]) {
NSMutableDictionary *attributesParams = [NSMutableDictionary dictionaryWithDictionary:attributes];
[attributesParams setValue:refererLink ? : @[] forKey:@"referer_Link"];
[attributesParams setValue:referrerLink ? : @[] forKey:@"referrer_link"];
attributes = attributesParams;
}
[self catchNullForEvent:eventName attributes:attributes];
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
@try {
......@@ -619,12 +620,6 @@ static dispatch_queue_t _normalQueue;
phobosLog(@"两个埋点outTime 时间差------%f", (fabsl(objOutTime - pageOutTime)));
checkTimeError = YES;
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;
}
}
......
......@@ -78,7 +78,7 @@ NS_ASSUME_NONNULL_BEGIN
/**
获取上一个页面链路的page_name link by 7.20.0 如果有此页面有page_name则添加 , 没有添加""
*/
@property (nonatomic, copy) NSArray *refererLink;
@property (nonatomic, copy) NSArray *referrerLink;
@end
......
......@@ -16,7 +16,7 @@
- (void)initReferer;
/**
// 只适用于链路中页面浏览PVLink 添加 refererLink 参数
// // 适用于链路中页面浏览事件的统计 添加 refererLink 参数
*/
- (void)initRefererLink;
......
......@@ -45,23 +45,27 @@
}
}
// 只适用于链路中页面浏览PVLink 添加 refererLink 参数
// 适用于链路中页面浏览事件的统计 添加 refererLink 参数
- (void)initRefererLink {
if ([self isKindOfClass:[UIViewController class]]) {
// 分present与navigation两种情况
UIViewController *me = (UIViewController *)self;
if (me.isPush.intValue) { // 如果是推送进来的,结果页面的referrerLink 为空数组, 此处添加过滤。
objc_setAssociatedObject(self, @selector(referrerLink), @[], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
return;
}
if (me.presentingViewController != nil) {
// app全局只有一个navigation,发现此时用navigation.topViewController presentViewController时,最终使用的是navigation弹出的
// 所以此处要判断,如果是navigation弹出,最后还是要定位到topViewController
if ([me.presentingViewController isKindOfClass:[UINavigationController class]]) {
UIViewController *top = ((UINavigationController *)me.presentingViewController).topViewController;
NSMutableArray *tempRefererLink = [NSMutableArray arrayWithArray:top.refererLink];
[tempRefererLink addObject:top.pageName];
objc_setAssociatedObject(self, @selector(pageLink), tempRefererLink, OBJC_ASSOCIATION_COPY);
NSMutableArray *tempLink = [NSMutableArray arrayWithArray:top.referrerLink];
[tempLink addObject:top.pageName];
objc_setAssociatedObject(self, @selector(referrerLink), tempLink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
} else {
NSMutableArray *tempRefererLink = [NSMutableArray arrayWithArray:me.presentingViewController.refererLink];
[tempRefererLink addObject:me.presentingViewController.pageName];
objc_setAssociatedObject(self, @selector(pageLink), tempRefererLink, OBJC_ASSOCIATION_COPY);
NSMutableArray *tempLink = [NSMutableArray arrayWithArray:me.presentingViewController.referrerLink];
[tempLink addObject:me.presentingViewController.pageName];
objc_setAssociatedObject(self, @selector(referrerLink), tempLink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
} else {
NSArray *navigationPool = ((UIViewController *)self).navigationController.viewControllers;
......@@ -70,20 +74,21 @@
return ;
}
UIViewController *controller = navigationPool[refererIndex];
NSMutableArray *tempRefererLink = [NSMutableArray arrayWithArray:controller.refererLink];
[tempRefererLink addObject:controller.pageName];
objc_setAssociatedObject(self, @selector(refererLink), tempRefererLink, OBJC_ASSOCIATION_COPY);
NSMutableArray *tempLink = [NSMutableArray arrayWithArray:controller.referrerLink];
[tempLink addObject:controller.pageName];
objc_setAssociatedObject(self, @selector(referrerLink), tempLink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
}
}
- (void)setRefererLink:(NSArray *)refererLink {
objc_setAssociatedObject(self, @selector(refererLink), refererLink, OBJC_ASSOCIATION_COPY);
- (void)setReferrerLink:(NSArray *)referrerLink {
objc_setAssociatedObject(self, @selector(referrerLink), referrerLink, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
-(NSArray *)refererLink {
NSArray *refererLink = objc_getAssociatedObject(self, @selector(refererLink));
return refererLink;
-(NSArray *)referrerLink {
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