2010-04-04 13 views
7

He integrado "In App Purchase" en un juego para que el usuario pueda desbloquear más niveles. Todo funciona bien, pero tengo un pequeño problema con la última alerta "Gracias. Tu compra fue exitosa. [OK]". Mi programa se entera de que la transacción se completó con éxito antes de que aparezca esta última alerta y mi juego comience a ejecutarse nuevamente; luego aparece la alerta, molestando al usuario. Me gustaría esperar con mi juego en ejecución hasta que el usuario toque el botón "Aceptar", pero ya que es una alerta de StoreKit no tengo ni idea de cuándo sucede esto o cómo podría atraparlo.Cómo saber cuándo el usuario toca el botón Aceptar de la última alerta de StoreKit "Gracias. Su compra fue exitosa"?

No quiero crear otro cuadro de diálogo (esta vez el mío, por lo tanto bajo mi control) debajo de la alerta, simplemente pidiendo que toque "OK" nuevamente - sería una mala experiencia para el usuario.

¿Alguien tiene alguna idea?

Respuesta

1

1) configura esa alerta storekit como delegate = yourclass.

2) Declarar yourclass con el UIAlertViewDelegate, a continuación, utilizar este método para interceptar la alerta:

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

se puede comprobar la alerta título/mensaje a ver si es la alerta correcta:

if ([alertView.message isEqualToString:@"Thank you.. bla bla bla"]) { 
    //something 
} 
+0

¿Cómo se hace # 1 (obtener la alerta del almacén)? En iOS 8 (no sé de 7), el sistema operativo muestra esa última alerta después de que se realizan todas las llamadas de delegado y observador, y no puedo encontrar una forma de acceder a la alerta para configurar el delegado. – 12on

2

Tengo la misma pregunta. Descubrí que cada vez que el usuario toca "OK" en ese mensaje de "Gracias", se llama al applicationDidBecomeActive:(UIApplication *)application, por lo que podría ser una manera. Me gustaría saber si alguien tiene una mejor manera ...

1

Creo que Irene está en el camino correcto. Tuve el mismo problema y revisé los "Interwebs" para encontrar una respuesta, y parece que no hay ninguno.

Para los propósitos de su juego, recomendaría pausar y reanudar el juego en respuesta a sus métodos applicationDidBecomeActive: y applicationWillResignActive: UIApplicationDelegate. Esto no solo hará que el juego se pause hasta que el usuario rechace la alerta de compra exitosa, sino que también pausará el juego cuando se reciba un mensaje de texto, se reciba una llamada telefónica o cualquier otro evento ocasione la interrupción de la aplicación.

Si bien es molesto en este caso, agregar una pausa automática y la reanudación de su juego agregará una característica muy fácil de usar que los usuarios apreciarán.

Cuestiones relacionadas