Да, вы можете сделать это, выполнив запрос в appdelegate при запуске приложения.
Позвольте создать один метод с именем getInAppProductDetails
. Используйте этот метод для запроса
-(void)getInAppProductDetails
{
SKProductsRequest *request;
request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects:
@"InAppID1",
@"InAppID2,
nil]];
request.delegate = self;
[request start];
}
Вызов метода выше во время запуска. После этого обработать ответ вы получили
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *myProducts = response.products;
NSMutableDictionary *dictMain = [[NSMutableDictionary alloc]init];
for (int i = 0;i < [myProducts count]; i++)
{
SKProduct *product = [myProducts objectAtIndex:i];
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
[numberFormatter setLocale:product.priceLocale];
NSString *priceString = [numberFormatter stringFromNumber:product.price];
NSString *strTitle = product.localizedTitle;
NSLog(@"Title: %@", product.localizedTitle);
NSLog(@"Desc: %@", product.localizedDescription);
NSLog(@"Price: %@", priceString);
NSLog(@"id : %@",product.productIdentifier);
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setValue:priceString forKey:@"productPrice"];
[dict setValue:strTitle forKey:@"prodcuctTitle"];
[dictMain setObject:dict forKey:product.productIdentifier];
}
[[NSUserDefaults standardUserDefaults] setObject:dictMain forKey:@"products"];
}
В этом методе делегата вы получаете каждый в деталях приложения, которые вы хранящимися в userdefaults
в качестве словаря для последующего использования.
Чтобы получить цену продукта из словаря, вы можете сделать, как этот
NSString *str1 = [[dictPriceList valueForKey:@"InAppID1"] valueForKey:@"productPrice"];
NSString *str2 = [[dictPriceList valueForKey:@"InAppID2"] valueForKey:@"productPrice"];
Вам не нужно просить о покупке для получения информации о продукте. Вам просто нужно запросить productData и сделать запрос, он вызовет делегата и предоставит вам необходимую информацию, он не инициирует оплату или покупку. –