gpt4 book ai didi

ios - 当设备无法检索 SKProduct 价格时显示 IAP 价格

转载 作者:行者123 更新时间:2023-11-28 21:54:38 27 4
gpt4 key购买 nike

我的应用程序有一个应用程序内购买,价格为 1.99 英镑。我使用弹出窗口显示此价格,但是,当设备未连接到互联网时,它无法检索我的 IAP 价格,因此它显示为空白。

我的 IAP 价格始终为 1.99 英镑。当设备未连接到互联网时,如何为其他国家/地区显示此 IAP 等级?

这是我目前获得 IAP 价格的方式:

_products = nil;
[[AppIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) {
if (success) {
_products = products;

SKProduct * product = _products[0];

[[AppIAPHelper sharedInstance] productPurchased:product.productIdentifier];

NSNumberFormatter *_priceFormatter = [[NSNumberFormatter alloc] init];
[_priceFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[_priceFormatter setLocale:product.priceLocale];
priceString = [_priceFormatter stringFromNumber:product.price];

NSLog(@"Price string: %@",priceString);
}
}];

我试图测试是否 priceString.count <= 0 (因此设备未连接到互联网),然后执行:

NSDecimalNumber *amount = [NSDecimalNumber decimalNumberWithString:@"1.99"];
NSNumberFormatter *currencyFormat = [[NSNumberFormatter alloc] init];
NSLocale *locale = [NSLocale currentLocale];
[currencyFormat setNumberStyle:NSNumberFormatterCurrencyStyle];
[currencyFormat setLocale:locale];
NSLog(@"AmountSo with symbol: %@", [currencyFormat stringFromNumber:amount]);//Eg: $50.00
NSLog(@"Current Locale : %@", [locale localeIdentifier]);//Eg: en_US

但这只是将本地货币符号添加到 amount .

问题是,我需要显示正确的价格等级。例如,1.99 美元兑换成英镑是 1.27。但 IAP 等级为 1.99 美元和 1.49 英镑。

基本上 - 如何在不请求 SKProduct 价格的情况下显示用户本地货币的 App Store IAP 价格等级(如果用户未连接到互联网)?谢谢。

最佳答案

您可以创建属性列表 (plist)、静态 NSDictionary 或包含映射到国家/地区代码的当前价格等级的其他一些关系表。如果没有可用的网络连接,请获取 the current locale country并使用它来查找价格等级和本地货币符号。

但问题是:既然没有网络连接就无法进行应用内购买,那么您到底为什么要关心呢?只是抛出一个网络连接不可用的通知?

如果您希望它更健壮,您还有一个选择,可以使用一种策略将其设置为缓存,如果网络可用则刷新它,否则使用缓存的副本。像这样使用 Reachability 的东西会起作用,尽管不可否认这是针对 NSURLRequest 而不是 SKProduct 请求。

Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus netStatus = [reachability currentReachabilityStatus];
if (netStatus == ReachableViaWiFi)
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
else
[request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];

关于ios - 当设备无法检索 SKProduct 价格时显示 IAP 价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985479/

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