From 1ec80deb00fc2462c9bec7b923e346508d055ba4 Mon Sep 17 00:00:00 2001 From: YoloMao Date: Fri, 7 Jul 2023 16:34:30 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=97=A0=E5=9F=8B=E7=82=B9?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebCircleTests/WebCircleTest.m | 2 +- .../GrowingNode/GrowingNodeHelper.m | 4 +-- Modules/WebCircle/GrowingWebCircle.m | 28 ++++++++++--------- 3 files changed, 18 insertions(+), 16 deletions(-) diff --git a/Example/GrowingAnalyticsTests/ModulesTests/WebCircleTests/WebCircleTest.m b/Example/GrowingAnalyticsTests/ModulesTests/WebCircleTests/WebCircleTest.m index 34b0c9cb3..5ec335940 100644 --- a/Example/GrowingAnalyticsTests/ModulesTests/WebCircleTests/WebCircleTest.m +++ b/Example/GrowingAnalyticsTests/ModulesTests/WebCircleTests/WebCircleTest.m @@ -158,7 +158,7 @@ - (void)testWebCircleElement { XCTAssertEqualObjects(dic[@"nodeType"], @"Button"); XCTAssertEqualObjects(dic[@"isContainer"], @1); XCTAssertEqualObjects(dic[@"index"], @10); - XCTAssertEqualObjects(dic[@"parentXpath"], @"parentXpath"); + XCTAssertEqualObjects(dic[@"parentXPath"], @"parentXpath"); XCTAssertEqualObjects(dic[@"page"], @"page"); XCTAssertEqualObjects(dic[@"domain"], [GrowingDeviceInfo currentDeviceInfo].bundleID); } diff --git a/GrowingAutotrackerCore/GrowingNode/GrowingNodeHelper.m b/GrowingAutotrackerCore/GrowingNode/GrowingNodeHelper.m index 267152908..db51f4a15 100644 --- a/GrowingAutotrackerCore/GrowingNode/GrowingNodeHelper.m +++ b/GrowingAutotrackerCore/GrowingNode/GrowingNodeHelper.m @@ -53,7 +53,7 @@ + (void)recalculateXpath:(UIView *)view NSString * (^toStringBlock)(NSArray *) = ^(NSArray *array) { NSArray *reverse = array.reverseObjectEnumerator.allObjects; - return [@"/" stringByAppendingString:[reverse componentsJoinedByString:@"/"]]; + return [reverse componentsJoinedByString:@"/"]; }; NSString *xpath = toStringBlock(viewPathArray); @@ -94,7 +94,7 @@ + (NSString *)buildElementContentForNode:(id _Nullable)view { + (GrowingViewNode *)getViewNode:(UIView *)view { NSPointerArray *weakArray = [NSPointerArray weakObjectsPointerArray]; GrowingViewNode *viewNode = [self getTopViewNode:view array:weakArray]; - for (int i = (int)weakArray.count - 1; i >= 0; i--) { + for (int i = (int)weakArray.count - 2; i >= 0; i--) { UIView *parent = [weakArray pointerAtIndex:i]; if (parent) { viewNode = [viewNode appendNode:parent isRecalculate:NO]; diff --git a/Modules/WebCircle/GrowingWebCircle.m b/Modules/WebCircle/GrowingWebCircle.m index de5c0c96b..2c8e046b0 100644 --- a/Modules/WebCircle/GrowingWebCircle.m +++ b/Modules/WebCircle/GrowingWebCircle.m @@ -154,19 +154,21 @@ - (NSMutableDictionary *)dictFromNode:(GrowingViewNode *)node { NSDictionary *pathInfo = page.pathInfo; NSString *pagexpath = pathInfo[@"xpath"]; NSString *pagexindex = pathInfo[@"xindex"]; - GrowingWebCircleElement *element = - GrowingWebCircleElement.builder.setRect(node.view.growingNodeFrame) - .setContent(node.viewContent) - .setZLevel(self.zLevel++) - .setIndex(node.index) - .setXpath([NSString stringWithFormat:@"%@%@", pagexpath, node.xpath]) - .setXindex([NSString stringWithFormat:@"%@%@", pagexindex, node.xindex]) - .setParentXpath([NSString stringWithFormat:@"%@%@", pagexpath, node.clickableParentXpath]) - .setParentXindex([NSString stringWithFormat:@"%@%@", pagexpath, node.clickableParentXindex]) - .setNodeType(node.nodeType) - .setPage(autotrackPage ? autotrackPage.alias : @"") - .build; - + GrowingWebCircleElementBuilder *builder = GrowingWebCircleElement.builder + .setRect(node.view.growingNodeFrame) + .setContent(node.viewContent) + .setZLevel(self.zLevel++) + .setIndex(node.index) + .setXpath([NSString stringWithFormat:@"%@/%@", pagexpath, node.xpath]) + .setXindex([NSString stringWithFormat:@"%@/%@", pagexindex, node.xindex]) + .setNodeType(node.nodeType) + .setPage(autotrackPage ? autotrackPage.alias : @""); + if (node.clickableParentXpath) { + builder = builder.setParentXpath([NSString stringWithFormat:@"%@/%@", pagexpath, node.clickableParentXpath]) + .setParentXindex([NSString stringWithFormat:@"%@/%@", pagexindex, node.clickableParentXindex]); + } + GrowingWebCircleElement *element = builder.build; + return [NSMutableDictionary dictionaryWithDictionary:element.toDictionary]; }