处理键盘语音svip权限弹窗,跳转主app充值
This commit is contained in:
@@ -192,6 +192,9 @@ static NSTimeInterval const kKBSubscriptionPrefillTTL = 10 * 60.0;
|
||||
return YES;
|
||||
} else if ([host isEqualToString:@"recharge"]) { // kbkeyboard://recharge
|
||||
NSDictionary<NSString *, NSString *> *params = [self kb_queryParametersFromURL:url];
|
||||
NSString *vipType = [params[@"vipType"] lowercaseString];
|
||||
BOOL preferSvip = ([vipType isKindOfClass:NSString.class] && vipType.length > 0 &&
|
||||
([vipType isEqualToString:@"svip"] || [vipType isEqualToString:@"1"]));
|
||||
NSString *productId = params[@"productId"];
|
||||
BOOL autoPay = NO;
|
||||
NSString *autoFlag = params[@"autoPay"];
|
||||
@@ -203,34 +206,37 @@ static NSTimeInterval const kKBSubscriptionPrefillTTL = 10 * 60.0;
|
||||
autoPay = YES;
|
||||
}
|
||||
|
||||
BOOL wantsPrefill = NO;
|
||||
NSString *prefillFlag = params[@"prefill"];
|
||||
if ([prefillFlag respondsToSelector:@selector(boolValue)] && prefillFlag.boolValue) {
|
||||
wantsPrefill = YES;
|
||||
}
|
||||
NSString *src = params[@"src"];
|
||||
if ([src isKindOfClass:NSString.class] && [src.lowercaseString isEqualToString:@"keyboard"]) {
|
||||
wantsPrefill = YES;
|
||||
}
|
||||
NSDictionary *prefillPayload = wantsPrefill ? [self kb_consumeSubscriptionPrefillPayloadIfValid] : nil;
|
||||
if ([prefillPayload isKindOfClass:NSDictionary.class]) {
|
||||
NSString *payloadProductId = prefillPayload[@"productId"];
|
||||
if (productId.length == 0 && [payloadProductId isKindOfClass:NSString.class]) {
|
||||
productId = payloadProductId;
|
||||
}
|
||||
}
|
||||
|
||||
KBPayMainVC *vc = [[KBPayMainVC alloc] init];
|
||||
if ([prefillPayload isKindOfClass:NSDictionary.class]) {
|
||||
NSArray *productsJSON = prefillPayload[@"products"];
|
||||
NSNumber *selectedIndexNumber = prefillPayload[@"selectedIndex"];
|
||||
NSInteger selectedIndex = [selectedIndexNumber respondsToSelector:@selector(integerValue)] ? selectedIndexNumber.integerValue : NSNotFound;
|
||||
[vc configureWithProductId:productId
|
||||
autoPurchase:autoPay
|
||||
prefillProductsJSON:productsJSON
|
||||
selectedIndex:selectedIndex];
|
||||
} else {
|
||||
[vc configureWithProductId:productId autoPurchase:autoPay];
|
||||
vc.initialSelectedIndex = preferSvip ? 1 : 0;
|
||||
if (!preferSvip) {
|
||||
BOOL wantsPrefill = NO;
|
||||
NSString *prefillFlag = params[@"prefill"];
|
||||
if ([prefillFlag respondsToSelector:@selector(boolValue)] && prefillFlag.boolValue) {
|
||||
wantsPrefill = YES;
|
||||
}
|
||||
NSString *src = params[@"src"];
|
||||
if ([src isKindOfClass:NSString.class] && [src.lowercaseString isEqualToString:@"keyboard"]) {
|
||||
wantsPrefill = YES;
|
||||
}
|
||||
NSDictionary *prefillPayload = wantsPrefill ? [self kb_consumeSubscriptionPrefillPayloadIfValid] : nil;
|
||||
if ([prefillPayload isKindOfClass:NSDictionary.class]) {
|
||||
NSString *payloadProductId = prefillPayload[@"productId"];
|
||||
if (productId.length == 0 && [payloadProductId isKindOfClass:NSString.class]) {
|
||||
productId = payloadProductId;
|
||||
}
|
||||
}
|
||||
|
||||
if ([prefillPayload isKindOfClass:NSDictionary.class]) {
|
||||
NSArray *productsJSON = prefillPayload[@"products"];
|
||||
NSNumber *selectedIndexNumber = prefillPayload[@"selectedIndex"];
|
||||
NSInteger selectedIndex = [selectedIndexNumber respondsToSelector:@selector(integerValue)] ? selectedIndexNumber.integerValue : NSNotFound;
|
||||
[vc configureWithProductId:productId
|
||||
autoPurchase:autoPay
|
||||
prefillProductsJSON:productsJSON
|
||||
selectedIndex:selectedIndex];
|
||||
} else {
|
||||
[vc configureWithProductId:productId autoPurchase:autoPay];
|
||||
}
|
||||
}
|
||||
[KB_CURRENT_NAV pushViewController:vc animated:true];
|
||||
return YES;
|
||||
|
||||
Reference in New Issue
Block a user