ultima resetear reiniciar problemas homepod fallos configurar con bateria actualizacion ios objective-c iphone in-app-purchase

ios - resetear - SKProductsRequest: ¿cómo manejar los tiempos de espera/errores de conexión?



reiniciar homepod (2)

Aclamaciones,

Me parece que SKProductsRequest no controla los tiempos de espera ni los errores de conexión de ninguna manera. O llama -(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response en su delegado en caso de éxito, o no lo hace.

Me gustaría presentar a mis usuarios algún tipo de indicador de actividad mientras se recuperan los productos, o tal vez aparezca una alerta si no se puede acceder a la tienda de aplicaciones. Sin embargo, dado que (en caso de fallo) no hay comentarios de SKProductsRequest, me pregunto a qué evento debo vincular la presentación de esos comentarios, aparte de esperar un tiempo arbitrario.

Entonces, la pregunta es: ¿hay un período de tiempo conocido después del cual es seguro asumir que la solicitud ha fallado? ¿O hay alguna forma de verificar el estado de una solicitud pendiente que no pude ver?


Ejecuto esto en mi proyecto para cuando falla una SKRequest (que incluye SKProductRequest):

- (void)request:(SKRequest *)request didFailWithError:(NSError *)error { alert = [[UIAlertView alloc] initWithTitle:@"In-App Store unavailable" message:@"The In-App Store is currently unavailable, please try again later." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; }

Trabaja un capricho. Por supuesto, puede colocar cualquier cosa dentro de los paréntesis para reemplazar mi alerta, pero esto funciona bien para el usuario.

Espero que esto sea de utilidad para usted.

Nota: Esto está en SKRequestDelegate no en SKProductsRequestDelegate , que es un poco confuso. SKRequestDelegate se utiliza para compras y para solicitudes de productos. El conjunto de delegados que utiliza request.delegate puede implementar métodos para ambos.


No creo que puedas hacer otra cosa que esperar un tiempo arbitrario. En algunas de mis aplicaciones, espero 30 segundos (mientras se muestra una vista de actividad modal) y luego salgo con una alerta de error genérica. El problema es que, en realidad, 30 segundos está más allá de la atención de la mayoría de los usuarios para tales problemas, pero si lo hace lo suficientemente corto como para ser útil (por ejemplo, 15 segundos), es posible que deba rescatarse demasiado pronto.

No creo que haya una opción mejor ... ¡pero estoy dispuesto a aprender de otra manera!