react-native-unionpay icon indicating copy to clipboard operation
react-native-unionpay copied to clipboard

unionpay 和 支付宝冲突

Open WilongChen opened this issue 7 years ago • 1 comments

所有的外链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) { } 这样更安全

WilongChen avatar Sep 22 '17 02:09 WilongChen

你能不能发个PR啊

boyaq avatar Sep 25 '17 08:09 boyaq