Как я могу перехватить «диалог покупки» StoreKit, чтобы MBProgressHUD / UIProgressView отображался правильно и в нужное время? - PullRequest
0 голосов
/ 12 апреля 2010

Я программирую StoreKit в своем приложении для iPhone.Кажется, я не могу перехватить время ожидания диалога покупки предмета ни до, ни после нажатия кнопки, чтобы купить предмет.В основном мне нужен индикатор на экране до появления диалогового окна покупки и после него, но до того, как купленный предмет разблокируется.Я не хочу, чтобы мои пользователи зависали на экране, не зная, прошла ли их покупка.

Кроме того, если я не показываю магазин, достаточно одного предсказуемого предмета, нужно ли мне запрашивать ProductDect?Было бы неплохо сделать время ожидания как можно меньше.

И последнее: в очереди - (void) paymentQueue: (SKPaymentQueue *) updatedTransactions: (NSArray *), если я покажу методalertView, если дело SKPaymentTransactionStateFailed: выполнено, я продолжаю получать несколько звонков, даже если покупка сделана один раз.программирование iPhone).

1 Ответ

4 голосов
/ 11 июля 2010

Ваш первый вопрос в представлении действий во время медленной обработки.

Вы можете перехватить состояние «SKPaymentTransactionStatePurchasing» в очереди платежей, чтобы создать представление предупреждений с индикатором активности. Отключить представление в состояниях «Закуплено», «Восстановлено» и «Не выполнено» после завершения обработки. Сгенерированные StoreKit предупреждения будут делать один исчезнет и снова появится, как требуется на протяжении всего процесса.

case SKPaymentTransactionStatePurchasing:
                purchaseActivityIndicator = [[UIAlertView alloc] initWithTitle:@"Processing purchase" message:@"Please wait..." delegate:self cancelButtonTitle:nil otherButtonTitles:nil,nil];
                UIActivityIndicatorView *activity = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
                [activity setFrame:CGRectMake(121.0f, 80.0f, 36.0f, 36.0f)];
                [purchaseActivityIndicator addSubview:activity];
                [activity startAnimating];
                [activity release];
                [purchaseActivityIndicator show];
                [purchaseActivityIndicator release];
                break;

Что касается второго вопроса, я запускаю загрузку элементов моего магазина во время запуска приложения, чтобы они были готовы к тому времени, когда пользователь попадет в магазин. Поскольку они загружают асинхронно, они должны быть готовы к тому времени, когда пользователь перейдет в представление магазина.

Не уверен в последнем вопросе.

Steve

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...