Skip to content

Commit 42e17a5

Browse files
committed
update recent code
1 parent 79ad38c commit 42e17a5

File tree

18 files changed

+615
-80
lines changed

18 files changed

+615
-80
lines changed

VideoPlsLuaViewManagerSDK/VideoPlsLuaViewManagerSDK/VideoPlsLuaViewManagerSDK.xcodeproj/project.pbxproj

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@
99
/* Begin PBXBuildFile section */
1010
0614EAD722F020D9002DD6F4 /* VPLMPView.h in Headers */ = {isa = PBXBuildFile; fileRef = 0614EAD522F020D8002DD6F4 /* VPLMPView.h */; };
1111
0614EAD822F020D9002DD6F4 /* VPLMPView.m in Sources */ = {isa = PBXBuildFile; fileRef = 0614EAD622F020D8002DD6F4 /* VPLMPView.m */; };
12+
0620393D23B1F1EB002256B1 /* VPLMPAddRecent.h in Headers */ = {isa = PBXBuildFile; fileRef = 0620393B23B1F1EB002256B1 /* VPLMPAddRecent.h */; };
13+
0620393E23B1F1EB002256B1 /* VPLMPAddRecent.m in Sources */ = {isa = PBXBuildFile; fileRef = 0620393C23B1F1EB002256B1 /* VPLMPAddRecent.m */; };
14+
0620394123B34AEA002256B1 /* VPLMPOpenAds.h in Headers */ = {isa = PBXBuildFile; fileRef = 0620393F23B34AEA002256B1 /* VPLMPOpenAds.h */; };
15+
0620394223B34AEA002256B1 /* VPLMPOpenAds.m in Sources */ = {isa = PBXBuildFile; fileRef = 0620394023B34AEA002256B1 /* VPLMPOpenAds.m */; };
1216
063A124422F3CE230027B6A2 /* VPLMPBridge.h in Headers */ = {isa = PBXBuildFile; fileRef = 063A124222F3CE230027B6A2 /* VPLMPBridge.h */; };
1317
063A124522F3CE230027B6A2 /* VPLMPBridge.m in Sources */ = {isa = PBXBuildFile; fileRef = 063A124322F3CE230027B6A2 /* VPLMPBridge.m */; };
1418
063ABC052004C6AC001A8B94 /* VPLGradientView.h in Headers */ = {isa = PBXBuildFile; fileRef = 063ABC032004C6AC001A8B94 /* VPLGradientView.h */; };
@@ -199,6 +203,10 @@
199203
/* Begin PBXFileReference section */
200204
0614EAD522F020D8002DD6F4 /* VPLMPView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VPLMPView.h; sourceTree = "<group>"; };
201205
0614EAD622F020D8002DD6F4 /* VPLMPView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VPLMPView.m; sourceTree = "<group>"; };
206+
0620393B23B1F1EB002256B1 /* VPLMPAddRecent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VPLMPAddRecent.h; sourceTree = "<group>"; };
207+
0620393C23B1F1EB002256B1 /* VPLMPAddRecent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VPLMPAddRecent.m; sourceTree = "<group>"; };
208+
0620393F23B34AEA002256B1 /* VPLMPOpenAds.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VPLMPOpenAds.h; sourceTree = "<group>"; };
209+
0620394023B34AEA002256B1 /* VPLMPOpenAds.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VPLMPOpenAds.m; sourceTree = "<group>"; };
202210
063A124222F3CE230027B6A2 /* VPLMPBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VPLMPBridge.h; sourceTree = "<group>"; };
203211
063A124322F3CE230027B6A2 /* VPLMPBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = VPLMPBridge.m; sourceTree = "<group>"; };
204212
063ABC032004C6AC001A8B94 /* VPLGradientView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VPLGradientView.h; sourceTree = "<group>"; };
@@ -561,6 +569,10 @@
561569
D05FA9162303C2FB00C24653 /* VPLTrackManager.m */,
562570
06571F9223851B4100C6C4D6 /* VPLMPRedirectManager.h */,
563571
06571F9323851B4100C6C4D6 /* VPLMPRedirectManager.m */,
572+
0620393B23B1F1EB002256B1 /* VPLMPAddRecent.h */,
573+
0620393C23B1F1EB002256B1 /* VPLMPAddRecent.m */,
574+
0620393F23B34AEA002256B1 /* VPLMPOpenAds.h */,
575+
0620394023B34AEA002256B1 /* VPLMPOpenAds.m */,
564576
);
565577
path = Manager;
566578
sourceTree = "<group>";
@@ -651,6 +663,7 @@
651663
D0114C251FCFBFCD00E75EF7 /* VPLLoadingView.h in Headers */,
652664
D0ADC49222EA8BD40037A549 /* VPLConstant.h in Headers */,
653665
063A124422F3CE230027B6A2 /* VPLMPBridge.h in Headers */,
666+
0620393D23B1F1EB002256B1 /* VPLMPAddRecent.h in Headers */,
654667
069D37CC20207CB700CB177D /* VPLWindow.h in Headers */,
655668
D0114C351FCFBFCD00E75EF7 /* VPLNativeBridge.h in Headers */,
656669
D0ADC4A222ED82B70037A549 /* VPLServiceAd.h in Headers */,
@@ -668,6 +681,7 @@
668681
063ABC052004C6AC001A8B94 /* VPLGradientView.h in Headers */,
669682
06D474AC22F8088900C9DADD /* VPMPContainerNetworkView.h in Headers */,
670683
D0114C161FCFBFCD00E75EF7 /* VPLBaseView.h in Headers */,
684+
0620394123B34AEA002256B1 /* VPLMPOpenAds.h in Headers */,
671685
D0114C3E1FCFBFCD00E75EF7 /* VPLTrackApi.h in Headers */,
672686
D0928C3F207CC135008AB5EC /* VPLPage.h in Headers */,
673687
06B02A7823753D43004E546D /* UIView+VPLView.h in Headers */,
@@ -804,6 +818,7 @@
804818
D05369992051067100A4F8C6 /* VPLMQTT.m in Sources */,
805819
0692ECFE1FF5EFA9008A3214 /* VPLNativeScanner.m in Sources */,
806820
D00ED8E8202DAB6700B6C8C1 /* VPLMedia.m in Sources */,
821+
0620393E23B1F1EB002256B1 /* VPLMPAddRecent.m in Sources */,
807822
D0114C331FCFBFCD00E75EF7 /* VPLBaseNode.m in Sources */,
808823
0640FAE61FE8EDF90089825F /* VPLNormalRefreshHeader.m in Sources */,
809824
D00ED8E3202C41AC00B6C8C1 /* VPLScriptManager.m in Sources */,
@@ -814,6 +829,7 @@
814829
D0114C201FCFBFCD00E75EF7 /* VPLImageView.m in Sources */,
815830
064C92F22314CB660050D862 /* VPMPLandscapeNavigationBar.m in Sources */,
816831
067A769922F03C5E008FC043 /* VPLMPLandscapeContainer.m in Sources */,
832+
0620394223B34AEA002256B1 /* VPLMPOpenAds.m in Sources */,
817833
D004F65A2093103000022E90 /* VPLuaServiceManager.m in Sources */,
818834
D0BD1AC02138DE2100A087F2 /* VPLSDK.m in Sources */,
819835
D05FA9182303C2FB00C24653 /* VPLTrackManager.m in Sources */,

VideoPlsLuaViewManagerSDK/VideoPlsLuaViewManagerSDK/VideoPlsLuaViewManagerSDK/VPLua/Applets/Network/VPLMPRequest.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ - (NSString *)requestWithMPID:(NSString *)mpID
124124
}
125125

126126
- (void)trackWithMPID:(NSString *)mpID
127-
apiManager:(id<VPUPHTTPAPIManager>)apiManager {
127+
apiManager:(id<VPUPHTTPAPIManager>)apiManager {
128128

129129
[self createHTTPManagerWith:apiManager];
130130

VideoPlsLuaViewManagerSDK/VideoPlsLuaViewManagerSDK/VideoPlsLuaViewManagerSDK/VPLua/Applets/VPLMPView.m

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,16 @@
1919
#import "VPHMPLandscapeContainer.h"
2020
#import "VPLOSView.h"
2121
#import "VPLMPRequest.h"
22+
#import "VPLMPAddRecent.h"
2223

2324
@interface VPLMPView () <VPMPContainerDelegate>
2425

2526
@property (nonatomic, weak) VPLNetworkManager *networkManager;
2627

2728
@property (nonatomic) NSMutableDictionary<NSString *, id<VPMPContainer>> *containers;
2829

30+
@property (nonatomic) NSMutableArray *currentMPIDs;
31+
2932
@property (nonatomic, copy) NSString *lPath;
3033

3134
@property (nonatomic, assign) BOOL isFullScreen;
@@ -228,6 +231,9 @@ - (void)loadMPWithID:(NSString *)mpID data:(id)data {
228231
if (!self.containers) {
229232
self.containers = [NSMutableDictionary dictionary];
230233
}
234+
if (!self.currentMPIDs) {
235+
self.currentMPIDs = [NSMutableArray array];
236+
}
231237

232238
NSDictionary *queryParams = [data objectForKey:VPUPRouteQueryParamsKey];
233239

@@ -302,7 +308,10 @@ - (void)createNewContainerWithType:(VPMPContainerType)type
302308
[container showInSuperview:self];
303309

304310
//track appletId
305-
[[VPLMPRequest request] trackWithMPID:mpID apiManager:self.networkManager.httpManager];
311+
// [[VPLMPRequest request] trackWithMPID:mpID apiManager:self.networkManager.httpManager];
312+
[VPLMPAddRecent addRecentWithMPID:mpID];
313+
//send close & open applet
314+
[self checkAndAddNewMPTrack:mpID];
306315

307316
break;
308317
}
@@ -349,7 +358,10 @@ - (void)refereshContainerWithMPID:(NSString *)mpID
349358
[container refreshContainerWithData:data];
350359

351360
//track appletId
352-
[[VPLMPRequest request] trackWithMPID:mpID apiManager:self.networkManager.httpManager];
361+
// [[VPLMPRequest request] trackWithMPID:mpID apiManager:self.networkManager.httpManager];
362+
[VPLMPAddRecent addRecentWithMPID:mpID];
363+
//send close & open applet
364+
[self checkAndAddNewMPTrack:mpID];
353365
}
354366

355367
- (BOOL)checkContainerExistWithMPID:(NSString *)mpID {
@@ -369,11 +381,56 @@ - (void)closeAllContainers {
369381
[obj closeContainer];
370382
}];
371383
[self.containers removeAllObjects];
384+
385+
//移除发送关闭
386+
if (self.currentMPIDs.count > 0) {
387+
[self closeMPTrack:[self.currentMPIDs lastObject]];
388+
[self.currentMPIDs removeAllObjects];
389+
}
372390
}
373391

374392
- (void)deleteContainerWithMPID:(NSString *)mpID {
375393
if ([self checkContainerExistWithMPID:mpID]) {
376394
[self.containers removeObjectForKey:mpID];
395+
396+
//移除单个发送单个关闭
397+
[self checkAndCloseLastMPTrack:mpID];
398+
}
399+
}
400+
401+
- (void)closeMPTrack:(NSString *)mpID {
402+
[[VPUPCommonTrack shared] sendTrackWithType:VPUPCommonTrackTypeCloseMP dataDict:@{@"appletId": mpID}];
403+
}
404+
405+
- (void)openMPTrack:(NSString *)mpID {
406+
[[VPUPCommonTrack shared] sendTrackWithType:VPUPCommonTrackTypeOpenMP dataDict:@{@"appletId": mpID}];
407+
}
408+
409+
- (void)checkAndAddNewMPTrack:(NSString *)newMPID {
410+
//打开新的,如果存在旧的则关闭旧的,如果是最后一个是当前小程序则什么都不发
411+
if (self.currentMPIDs.count > 0) {
412+
if ([[self.currentMPIDs lastObject] isEqualToString:newMPID]) {
413+
return;
414+
}
415+
[self closeMPTrack:[self.currentMPIDs lastObject]];
416+
}
417+
418+
[self openMPTrack:newMPID];
419+
420+
if ([self.currentMPIDs containsObject:newMPID]) {
421+
[self.currentMPIDs removeObject:newMPID];
422+
}
423+
424+
[self.currentMPIDs addObject:newMPID];
425+
}
426+
427+
- (void)checkAndCloseLastMPTrack:(NSString *)closeMPID {
428+
//先关闭当前
429+
[self closeMPTrack:closeMPID];
430+
[self.currentMPIDs removeObject:closeMPID];
431+
//再检测有没有需要打开的
432+
if (self.currentMPIDs.count > 0) {
433+
[self openMPTrack:[self.currentMPIDs lastObject]];
377434
}
378435
}
379436

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// VPLMPAddRecent.h
3+
// VideoPlsLuaViewManagerSDK
4+
//
5+
// Created by Zard1096-videojj on 2019/12/24.
6+
// Copyright © 2019 videopls. All rights reserved.
7+
//
8+
9+
#import <Foundation/Foundation.h>
10+
11+
12+
@interface VPLMPAddRecent : NSObject
13+
14+
+ (void)addRecentWithMPID:(NSString *)mpID;
15+
16+
@end
17+
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
//
2+
// VPLMPAddRecent.m
3+
// VideoPlsLuaViewManagerSDK
4+
//
5+
// Created by Zard1096-videojj on 2019/12/24.
6+
// Copyright © 2019 videopls. All rights reserved.
7+
//
8+
9+
#import "VPLMPAddRecent.h"
10+
#import "VPUPLocalStorage.h"
11+
#import "VPUPGeneralInfo.h"
12+
#import "VPUPJsonUtil.h"
13+
14+
@implementation VPLMPAddRecent
15+
16+
+ (void)addRecentWithMPID:(NSString *)mpID {
17+
18+
NSString *recentString = [VPUPLocalStorage getStorageDataWithFile:[VPUPGeneralInfo userIdentity] key:@"recentMiniAppId"];
19+
20+
NSMutableArray *mpArray = [NSMutableArray array];
21+
22+
if (recentString) {
23+
NSArray *dataArray = VPUP_JsonToDictionary(recentString);
24+
if (dataArray && [dataArray isKindOfClass:[NSArray class]] && dataArray.count > 0) {
25+
[mpArray addObjectsFromArray:dataArray];
26+
}
27+
}
28+
29+
if ([mpArray containsObject:mpID]) {
30+
[mpArray removeObject:mpID];
31+
}
32+
33+
[mpArray insertObject:mpID atIndex:0];
34+
35+
if ([mpArray count] > 21) {
36+
[mpArray removeObjectsInRange:NSMakeRange(21, [mpArray count] - 21)];
37+
}
38+
39+
NSString *savedString = VPUP_DictionaryToJson(mpArray);
40+
41+
[VPUPLocalStorage setStorageDataWithFile:[VPUPGeneralInfo userIdentity] key:@"recentMiniAppId" value:savedString];
42+
43+
}
44+
45+
@end

0 commit comments

Comments
 (0)