Skip to content

Commit c60decd

Browse files
authored
Merge pull request didi#36 from EFRenovation/master
Add removePluginWithPluginName
2 parents e2b6436 + c9ad88d commit c60decd

File tree

4 files changed

+45
-5
lines changed

4 files changed

+45
-5
lines changed

iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,16 @@ typedef void (^DoraemonH5DoorBlock)(NSString *);
1515

1616
- (void)install;
1717

18+
- (void)installWithCustomBlock:(void(^)())customBlock;
19+
1820
@property (nonatomic,strong) NSMutableArray *dataArray;
1921

2022
@property (nonatomic, copy) DoraemonH5DoorBlock h5DoorBlock;
2123

2224
- (void)addPluginWithTitle:(NSString *)title icon:(NSString *)iconName desc:(NSString *)desc pluginName:(NSString *)entryName atModule:(NSString *)moduleName;
2325

26+
- (void)removePluginWithPluginName:(NSString *)pluginName atModule:(NSString *)moduleName;
27+
2428
- (void)addStartPlugin:(NSString *)pluginName;
2529

2630
- (void)addH5DoorBlock:(void(^)(NSString *h5Url))block;

iOS/DoraemonKit/Src/Core/Manager/DoraemonManager.m

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,12 @@ + (DoraemonManager *)shareInstance{
5555
}
5656

5757
- (void)install{
58+
[self installWithCustomBlock:^{
59+
//什么也没发生
60+
}];
61+
}
62+
63+
- (void)installWithCustomBlock:(void(^)())customBlock{
5864
for (int i=0; i<_startPlugins.count; i++) {
5965
NSString *pluginName = _startPlugins[i];
6066
Class pluginClass = NSClassFromString(pluginName);
@@ -63,8 +69,10 @@ - (void)install{
6369
[plugin pluginDidLoad];
6470
}
6571
}
66-
72+
6773
[self initData];
74+
customBlock();
75+
6876
[self initEntry];
6977

7078
//根据开关判断是否收集Crash日志
@@ -190,6 +198,10 @@ - (void)addPluginWithTitle:(NSString *)title icon:(NSString *)iconName desc:(NSS
190198
}
191199
}
192200

201+
- (void)removePluginWithPluginName:(NSString *)pluginName atModule:(NSString *)moduleName{
202+
[self unregisterPlugin:pluginName withModule:moduleName];
203+
}
204+
193205
- (void)registerPluginArray:(NSMutableArray*)array withModule:(NSString*)moduleName{
194206
if (!_dataArray){
195207
_dataArray = [[NSMutableArray alloc]init];
@@ -200,6 +212,27 @@ - (void)registerPluginArray:(NSMutableArray*)array withModule:(NSString*)moduleN
200212
[_dataArray addObject:dic];
201213
}
202214

215+
- (void)unregisterPlugin:(NSString*)pluginName withModule:(NSString*)moduleName{
216+
if (!_dataArray){
217+
return;
218+
}
219+
id object;
220+
for (object in _dataArray) {
221+
NSString *tempModuleName = [((NSMutableDictionary *)object) valueForKey:@"moduleName"];
222+
if ([tempModuleName isEqualToString:moduleName]) {
223+
NSMutableArray *tempPluginArray = [((NSMutableDictionary *)object) valueForKey:@"pluginArray"];
224+
id pluginObject;
225+
for (pluginObject in tempPluginArray) {
226+
NSString *tempPluginName = [((NSMutableDictionary *)pluginObject) valueForKey:@"pluginName"];
227+
if ([tempPluginName isEqualToString:pluginName]) {
228+
[tempPluginArray removeObject:pluginObject];
229+
return;
230+
}
231+
}
232+
}
233+
}
234+
}
235+
203236
- (void)hiddenDoraemon{
204237
_entryView.hidden = YES;
205238
}

iOS/DoraemonKitDemo/DoraemonKitDemo.xcodeproj/project.pbxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,7 @@
562562
buildSettings = {
563563
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
564564
CODE_SIGN_STYLE = Automatic;
565-
DEVELOPMENT_TEAM = RSV7DQ57L7;
565+
DEVELOPMENT_TEAM = "";
566566
ENABLE_BITCODE = YES;
567567
GCC_PRECOMPILE_PREFIX_HEADER = YES;
568568
GCC_PREFIX_HEADER = "DoraemonKitDemo/DoraemonKitDemo-PrefixHeader.pch";
@@ -580,7 +580,7 @@
580580
buildSettings = {
581581
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
582582
CODE_SIGN_STYLE = Automatic;
583-
DEVELOPMENT_TEAM = RSV7DQ57L7;
583+
DEVELOPMENT_TEAM = "";
584584
ENABLE_BITCODE = YES;
585585
GCC_PRECOMPILE_PREFIX_HEADER = YES;
586586
GCC_PREFIX_HEADER = "DoraemonKitDemo/DoraemonKitDemo-PrefixHeader.pch";

iOS/DoraemonKitDemo/DoraemonKitDemo/AppDelegate.m

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
3030
// [[DoraemonManager shareInstance] addH5DoorBlock:^(NSString *h5Url) {
3131
// NSLog(@"使用自带容器打开H5链接: %@",h5Url);
3232
// }];
33-
[[DoraemonManager shareInstance] install];
34-
33+
// 例子:移除 GPS Mock
34+
// [[DoraemonManager shareInstance] installWithCustomBlock:^{
35+
// [[DoraemonManager shareInstance] removePluginWithPluginName:@"DoraemonGPSPlugin" atModule:@"常用工具"];
36+
// }];
37+
3538
for (int i=0; i<10; i++) {
3639
// DDLogInfo(@"点击添加埋点22222");
3740
}

0 commit comments

Comments
 (0)