feat:call NativeView's method on UI thread

This commit is contained in:
pengfei.zhou
2019-11-18 17:04:00 +08:00
parent 99c994b11b
commit d123baa5f4
3 changed files with 15 additions and 20 deletions

View File

@@ -100,22 +100,14 @@ - (id)findClass:(Class)clz target:(id)target method:(NSString *)name promise:(Do
DoricLog(@"CallNative Error:%@", exception.reason);
}
};
const char *retType = methodSignature.methodReturnType;
if (!strcmp(retType, @encode(void))) {
ret = nil;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block);
} else if (!strcmp(retType, @encode(id))) {
dispatch_async(dispatch_get_main_queue(), ^{
void *retValue;
block();
[invocation getReturnValue:&retValue];
id returnValue = (__bridge id) retValue;
[promise resolve:returnValue];
} else {
DoricLog(@"Command Error:%@", @"Must return object type");
ret = nil;
[promise reject:@"Command: Must return object type"];
}
});
return ret;
}
break;
}