Sat*_*yam 4 in-app-purchase ios
在我的iOS应用程序中,我有3个产品,用户可以使用应用内购买购买.从我的iOS应用程序中,我只想获得苹果服务器上所有3个项目的价格.如何在没有用户干预的情况下获得价格.(可能是我在视图中处理加载或某些方法)
San*_*hry 10
您无需任何用户干预即可获取任何产品信息.您所要做的就是发送产品请求信息并实现一个回调方法,该方法将处理响应,如下所示(该示例来自http://troybrant.net/blog/2010/01/in-app -cochases-a-walk -through /):
- (void)requestProUpgradeProductData
{
NSSet *productIdentifiers = [NSSet setWithObject:@"com.runmonster.runmonsterfree.upgradetopro" ];
productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
productsRequest.delegate = self;
[productsRequest start];
// we will release the request object in the delegate callback
}
#pragma mark -
#pragma mark SKProductsRequestDelegate methods
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *products = response.products;
proUpgradeProduct = [products count] == 1 ? [[products firstObject] retain] : nil;
if (proUpgradeProduct)
{
NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
NSLog(@"Product price: %@" , proUpgradeProduct.price);
NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
}
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Invalid product id: %@" , invalidProductId);
}
// finally release the reqest we alloc/init’ed in requestProUpgradeProductData
[productsRequest release];
[[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerProductsFetchedNotification object:self userInfo:nil];
}
Run Code Online (Sandbox Code Playgroud)
只需从viewDidLoad调用requestProUpgradeProductData即可.
您可以随时使用已知标识符列表创建SKProductsRequest实例.我在应用程序启动时完成了它.它是一个使用委托的异步调用,因此很容易做到没有阻塞.
myProductsRequest = [SKProductsRequest initWithProductIdentifiers:someSetOfIds];
myProductsRequest.delegate = myDelegageSomewhere;
Run Code Online (Sandbox Code Playgroud)
在您的SKProductsRequestDelegate中:
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
for(SKProduct *product in response.products)
{
[self doSomethingWithPrice:product.price]
}
}
Run Code Online (Sandbox Code Playgroud)
该信息与用户的iTunes帐户相关联.这就是它如何获得不同国家商店(不同货币)的价格.