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