Я столкнулся со следующей проблемой: когда мое приложение запускается на устройстве, и я нажимаю кнопку "ПОКУПАТЬ", которая запускает механизм In-App-Purchase, для отображения стандартного подтверждения UIAlertView
требуется до десяти секунд, которое говорит: "Вы хотите покупать...". Я никогда не видел такого поведения раньше. Обычно это происходит немедленно. Поэтому сначала я подумал, что это может быть из-за плохого подключения к интернету или что-то в этом роде, но симулятор использует одну и ту же сеть Wi-Fi, и она отлично работает, представление предупреждения представляется мгновенно, как и должно быть. Поэтому проблема, вероятно, лежит где-то в другом месте. Кто-нибудь разрешил эту проблему?
Это кнопка:
- (void)buyItemTapped:(id)sender
{
[[InAppPurchaseManager sharedInstance] buy:[NSString stringWithFormat:@"com.mycompany.myapp.unit%d", [sender tag] + 1]];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(transactionFailed)
name:TRANSACTION_FAILED_NOTIFICATION
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(productPurchased:)
name:PRODUCT_PURCHASED_NOTIFICATION
object:nil];
}
покупка метод:
- (void)buy:(NSString *)identifier
{
SKProduct *product = [self.products objectForKey:identifier];
if (product)
[self purchaseProduct:product];
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Invalid Product Identifier"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
}
покупкаПродукт метод:
- (void)purchaseProduct:(SKProduct *)product
{
if ([SKPaymentQueue canMakePayments])
{
SKPayment *payment = [SKPayment paymentWithProduct:product];
[[SKPaymentQueue defaultQueue] addPayment:payment];
}
else
NSLog(@"Cannot make purchase");
}