¿Cómo puedo interceptar el "cuadro de diálogo de compra" de StoreKit para que un MBProgressHUD / UIProgressView se muestre correctamente y en el momento adecuado?

Estoy programando StoreKit en la aplicación de mi iPhone. Parece que no puedo interceptar el tiempo de espera del diálogo de compra del artículo antes o después de presionar el botón para comprar el artículo. Básicamente, lo que quiero es un indicador en la pantalla antes de que aparezca el cuadro de diálogo de compra y después, pero antes de que se desbloquee el artículo comprado. No quiero que mis usuarios se cuelguen de la pantalla sin saber si su compra se realizó.

Además, si no estoy mostrando una tienda, solo un artículo predecible, ¿necesito solicitarProductData? Cualquier cosa para reducir el tiempo de espera sería bueno.

Una última cosa: En el método de transacciones - (void) paymentQueue: (SKPaymentQueue *) queue updatedTransactions: (NSArray *), si muestro un alertView si el caso SKPaymentTransactionStateFailed: se cumple, sigo recibiendo múltiples llamadas, incluso si la compra se hace una vez.

¡Gracias!

Por favor, ayude con todo lo que pueda (solo tratando de aprender la programación de mi iPhone).

preguntado el 12 de abril de 10 a las 15:04

1 Respuestas

Para su primera pregunta en una vista de actividad durante los tramos lentos de procesamiento.

Puede interceptar el estado "SKPaymentTransactionStatePurchasing en la Cola de pago para poner una Vista de alerta con un indicador de actividad. Descarte la Vista en los estados Comprado, Restaurado y Fallido después de que haya completado su procesamiento. Las AlertViews generadas por StoreKit harán que esta desaparezca y reaparecerán según sea necesario durante todo el proceso.

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;

Para la segunda pregunta, comienzo la carga de los artículos de mi tienda en el momento de inicio de la aplicación para que estén listos cuando el usuario llega a la tienda. Dado que se cargan de forma asíncrona, deberían estar listos para cuando un usuario acceda a una vista de tienda.

No estoy seguro de la última pregunta.

Steve

Respondido 11 Jul 10, 08:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.