gpt4 book ai didi

iphone - Apple 应用内购买 - 检索特定地区的价格

转载 作者:行者123 更新时间:2023-11-29 10:56:16 24 4
gpt4 key购买 nike

正如标题所暗示的,我需要获取应用程序内产品的价格,但对于美国应用商店,完全忽略用户当前的区域设置和设置。

换句话说,
获取产品的美元价格,即使本地用户设置为俄罗斯/法国/其他。

谢谢

最佳答案

您需要的内容将在 SKProductsRequest 中提供。如果您使用 SKRequestDelegate 协议(protocol)实现一个对象,您可以获得价格。如果愿意,您可以选择将语言环境硬编码为美国。

设置请求:

NSSet* identifiers = [NSSet setWithObjects:inAppIdentiferOne, inAppIdentifierTwo, nil];

SKProductsRequest* productRequest= [[SKProductsRequest alloc] initWithProductIdentifiers:identifiers];
productRequest.delegate = self;
[productRequest start];

处理响应:

-(void) productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
for(int i=0; i<response.products.count; i++)
{
SKProduct* instance = [response.products objectAtIndex:i];

NSLog(@"IAP Desc: %@. Title: %@.", instance.localizedDescription, instance.localizedTitle);

// This is where you can hardcode the US locale by setting a NSLocale type
// I'm not 100% sure on how to set the NSLocale correctly, so currently this line sets localization
NSLocale* locale = instance.priceLocale;

NSNumberFormatter* fmtr = [[NSNumberFormatter alloc] init];
[fmtr setNumberStyle:NSNumberFormatterCurrencyStyle];
[fmtr setLocale:locale];

if([instance.productIdentifier isEqualToString:inAppIdentiferOne])
{
NSString* localizedCostString = [fmtr stringFromNumber:(instance.price)];
NSString* productIdentifier = instance.productIdentifier;
}
else if([instance.productIdentifier isEqualToString:inAppIdentiferTwo])
{
NSString* localizedCostString = [fmtr stringFromNumber:(instance.price)];
NSString* productIdentifier = instance.productIdentifier;
}
}
}

还有一个可选函数来处理检索这些您可能想要处理的标识符的失败。

关于iphone - Apple 应用内购买 - 检索特定地区的价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18226785/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com