react-native-unionpay
react-native-unionpay copied to clipboard
unionpay 和 支付宝冲突
所有的外链APP回掉都会走 RCTOpenURLNotification 这个通知,而在CFBundleURLTypes 你无法判断CFBundleURLName 具体是在 CFBundleURLTypes 里第几个位置 建议改成支付宝的判断方法 做如下修改 NSArray *urlTypes = [[[NSBundle mainBundle] infoDictionary] valueForKey:@"CFBundleURLTypes"]; for (NSDictionary *item in urlTypes) { NSString *name = item[@"CFBundleURLName"]; if ([name isEqualToString:@"upay"]) { NSArray *schemes = item[@"CFBundleURLSchemes"]; if (schemes.count > 0) { self.schemeStr = schemes[0]; break; } } } 否则
NSArray *urlTypes = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLTypes"];
NSArray *urlSchemes = [[urlTypes objectAtIndex:3] objectForKey:@"CFBundleURLSchemes"];
if(urlSchemes.count > 0) {
self.schemeStr = [urlSchemes firstObject];
}
这个方法无论哪个在firstObject 你都会取到 CFBundleURLSchemes 它不一定是unionpay 而 canOpen = [aURLString hasPrefix:scheme]; 返回YES
[body setObject:code forKey:@"code"];
[self sendEventWithName:@"UnionPay_Resp" body: body];
这里可能会导致崩溃
当然 你也可以把 他放进 if(data != nil) { } 这样更安全
你能不能发个PR啊