Open WilongChen opened 7 years ago
所有的外链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啊
所有的外链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; } } } 否则
这个方法无论哪个在firstObject 你都会取到 CFBundleURLSchemes 它不一定是unionpay 而 canOpen = [aURLString hasPrefix:scheme]; 返回YES
[body setObject:code forKey:@"code"];
[self sendEventWithName:@"UnionPay_Resp" body: body]; 这里可能会导致崩溃
当然 你也可以把 他放进 if(data != nil) { } 这样更安全