Как узнать, когда пользователь коснулся кнопки OK в последнем предупреждении StoreKit Спасибо. Ваша покупка прошла успешно?

Я интегрировал «Покупку в приложении» в игру, чтобы пользователь мог разблокировать больше уровней. Все работает нормально, но у меня небольшая проблема с последним оповещением "Спасибо. Ваша покупка прошла успешно. [ОК]". Моя программа получает информацию о том, что транзакция была успешно завершена, прежде чем появится это последнее предупреждение, и поэтому моя игра снова запустится, а затем появится предупреждение, раздражающее пользователя. Я хотел бы подождать с запущенной игрой, пока пользователь не коснется кнопки «ОК», но, поскольку это предупреждение от StoreKit, я понятия не имею, когда это произойдет и как я могу его поймать.

Я не хочу создавать еще один диалог (на этот раз мой собственный, поэтому под моим контролем) под предупреждением, просто попросив снова коснуться «ОК» - это было бы плохим пользовательским интерфейсом.

У кого-нибудь есть идеи?


person Walchy    schedule 04.04.2010    source источник


Ответы (3)


1) установите это предупреждение storekit как делегат = ваш класс.

2) Объявите свой класс с помощью UIAlertViewDelegate, а затем используйте этот метод для перехвата предупреждения:

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

Вы можете проверить заголовок/сообщение предупреждения, чтобы убедиться, что это правильное предупреждение:

if ([alertView.message isEqualToString:@"Thank you.. bla bla bla"]) {
    //something
}
person Nicholas Valbusa    schedule 22.02.2011
comment
Как вы делаете # 1 (получить предупреждение о магазине)? В iOS 8 (не знаю насчет 7) ОС выводит это последнее предупреждение после выполнения всех вызовов делегатов и наблюдателей, и я не могу найти способ получить доступ к предупреждению для установки делегата. - person 12on; 07.02.2015

У меня тот же вопрос. Я обнаружил, что всякий раз, когда пользователь касается «ОК» в этом сообщении «Спасибо», вызывается applicationDidBecomeActive:(UIApplication *)application, так что, возможно, это может быть способом. Я хотел бы знать, если у кого-то есть лучший способ, хотя ..

person phi    schedule 13.08.2010

Я думаю, Ирина на правильном пути. У меня была такая же проблема и я рыскал по "интернетам" в поисках ответа, а его вроде нет.

Для целей вашей игры я бы рекомендовал приостанавливать и возобновлять игру в ответ на ваши методы applicationDidBecomeActive: и applicationWillResignActive: UIApplicationDelegate. Это не только приведет к приостановке игры до тех пор, пока пользователь не закроет уведомление об успешной покупке, но также приостановит игру при получении текстового сообщения, телефонного звонка или любого другого события, вызывающего прерывание работы приложения.

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

person Thomas M    schedule 22.02.2011