是否可以仅针对一部分国家/地区实施应用内购买?

时间:2011-12-08 21:41:20

标签: iphone ios ipad in-app-purchase

是否有办法使用应用程序内购买,以便它们在美国不可用,同时确定它们是否可用 - 如果没有,则为客户执行特殊任务美国谁不能使用它们?

2 个答案:

答案 0 :(得分:2)

您可以使用CLLocationManager查找用户位置,然后使用MKReverseGeocoder确定他们所在的国家/地区。

有些人会拒绝访问位置信息。作为备份,您可以使用当前设备所使用的语言(但这种方法存在一些明显的问题):

NSString * language = [[NSLocale preferredLanguages] objectAtIndex:0];
http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

然后你只需要使用一个条件语句:

if(in USA){ 
  do whatever, don't allow in-app purchases
} else {
  allow in app purchases
}

答案 1 :(得分:0)

也许您可以在后台发送产品请求,只有在有东西回来时才会显示购买按钮。缺点是可能存在问题(存储中断,网络问题,暂时关闭产品)会导致产品请求失败,因此您必须适当地设计备用UI。

SKProductsRequest *productRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:productId]]; 
productRequest.delegate = self;
[productRequest start];


-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
    if ([[response products] count] > 0) {
        // display purchase link
    } else {
        // display alternative UI
    }
}