Skip to content

Commit 4d8b148

Browse files
committed
* [ios] moduleEvent support variable value
1 parent dbea448 commit 4d8b148

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

ios/sdk/WeexSDK/Sources/Bridge/WXModuleMethod.m

+3-3
Original file line numberDiff line numberDiff line change
@@ -48,15 +48,15 @@ - (NSInvocation *)invoke
4848
}
4949
if (![moduleInstance respondsToSelector:selector] && [self.methodName isEqualToString:@"addEventListener"]) {
5050
if([self.arguments[0] isKindOfClass:[NSString class]] && [self.arguments count] == 3) {
51-
[self.instance addModuleEventObservers:self.arguments[0] callback:self.arguments[1] option:self.arguments[2] moduleClassName:NSStringFromClass(moduleClass)];
52-
return nil;
51+
[self.instance _addModuleEventObserversWithArguments:self.arguments moduleClassName:NSStringFromClass(moduleClass)];
5352
}
53+
return nil;
5454
}
5555
if (![moduleInstance respondsToSelector:selector] && [self.methodName isEqualToString:@"removeAllEventListeners"]) {
5656
if ([self.arguments count] &&[self.arguments[0] isKindOfClass:[NSString class]]) {
5757
[self.instance removeModuleEventObserver:self.arguments[0] moduleClassName:_moduleName];
58-
return nil;
5958
}
59+
return nil;
6060
}
6161

6262
NSInvocation *invocation = [self invocationWithTarget:moduleInstance selector:selector];

ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m

+13
Original file line numberDiff line numberDiff line change
@@ -395,6 +395,19 @@ - (BOOL)checkModuleEventRegistered:(NSString*)event moduleClassName:(NSString*)m
395395

396396
#pragma mark Private Methods
397397

398+
- (void)_addModuleEventObserversWithArguments:(NSArray*)arguments moduleClassName:(NSString*)moduleClassName
399+
{
400+
if ([arguments count] < 2) {
401+
WXLogError(@"please check your method parameter!!");
402+
return;
403+
}
404+
NSMutableArray * methodArguments = [arguments mutableCopy];
405+
if ([arguments count] == 2) {
406+
[methodArguments addObject:@{@"once": @false}];
407+
}
408+
[self addModuleEventObservers:methodArguments[0] callback:methodArguments[1] option:methodArguments[2] moduleClassName:moduleClassName];
409+
}
410+
398411
- (void)addModuleEventObservers:(NSString*)event callback:(NSString*)callbackId option:(NSDictionary *)option moduleClassName:(NSString*)moduleClassName
399412
{
400413
BOOL once = [[option objectForKey:@"once"] boolValue];

ios/sdk/WeexSDK/Sources/Model/WXSDKInstance_private.h

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
@property (nonatomic, readonly, strong) WXComponentManager *componentManager;
2323

2424
- (void)addModuleEventObservers:(NSString*)event callback:(NSString*)callbackId option:(NSDictionary*)option moduleClassName:(NSString*)moduleClassName;
25+
- (void)_addModuleEventObserversWithArguments:(NSArray*)arguments moduleClassName:(NSString*)moduleClassName;
2526
- (void)removeModuleEventObserver:(NSString*)event moduleClassName:(NSString*)moduleClassName;
2627

2728
@end

0 commit comments

Comments
 (0)