#ios #in-app-purchase
#iOS #покупка в приложении
Вопрос:
Моя реализация восстановления, похоже, в основном работает.
paymentQueue:updatedTransactions:
Я блокирую пользовательский интерфейс с помощью индикатора модальной активности, отправляю запросы на наш сервер для каждой восстановленной транзакции, получаю ответы, сообщающие мне идентификатор соответствующего (непотребляемого) элемента для загрузки. Я закрываю транзакцию. Наконец, paymentQueueRestoreCompletedTransactionsFinished
или restoreCompletedTransactionsFailedWithError:
это мой сигнал, чтобы удалить индикатор активности и если nec. чтобы начать загрузку. Пока все хорошо. Это работает.
Если процесс восстановления прерван (приложение завершает работу), paymentQueue:updatedTransactions:
он по-прежнему выполняет свою работу нормально при повторном запуске приложения, но я не получаю paymentQueueRestoreCompletedTransactionsFinished
событие. Таким образом, мне не хватает подсказки, чтобы удалить индикатор активности и начать загрузку.
Кто-нибудь знает, что может быть причиной этого?
Мой обходной paymentQueueRestoreCompletedTransactionsFinished
путь — полностью игнорировать и вместо этого использовать paymentQueue:removedTransactions:
для отслеживания количества элементов в очереди, действуя соответствующим образом, когда элементов больше нет. Не кажется мне особенно элегантным, хотя открывает возможность отображения более информативного сообщения о ходе выполнения.
Комментарии:
1. Я вижу то же самое. Я уже использовал paymentQueue:removedTransactions: для обновления индикатора выполнения, но я надеялся использовать paymentQueueRestoreCompletedTransactionsFinished, чтобы закрыть мой модальный диалог… думаю, мне просто придется сделать это уродливым способом =/