2012-01-27 15 views
40

Me gustaría saber si es posible forzar que la ventana emergente "XXXXX desee enviarle notificaciones automáticas" desde una aplicación, después de un declive inicial. El caso de uso es el siguiente:iOS: solicite habilitar las notificaciones push después del declive inicial

  • el usuario instala la aplicación, recibe la alerta sobre las notificaciones push, y declina porque no saben/confían en la aplicación todavía.

  • utilizan la aplicación y solicitar de forma proactiva dentro de la aplicación que se le avise cuando sucede algo (digamos, por ejemplo, algo que quieren comprar es agotado por lo que quieren que se le avise cuando esté disponible).

  • Así que ahora el usuario ha pedido a la aplicación que le notifique sobre algo específico pero tiene notificaciones push deshabilitadas en el sistema operativo nivel.

  • lo tanto, si el usuario solicita una alerta, pero detecto que disminuyeron alertas en la primera ejecución, lo que necesito para ser avisado de esto y hacer que se enciendan notificaciones push por la alerta de trabajar.

  • Idealmente, me gustaría forzar el "XXXX desea enviar empujar notificaciones de alerta" en este punto (por segunda vez desde que instalada la aplicación).

  • supongo Plan B sería para mostrarles mi propio mensaje diciéndoles que tienen que ir a sus ajustes del sistema y volver a activarlo manualmente en fin de recibir la alerta que quieren. Esto está lejos de ser ideal.

Cualquier ayuda sería apreciada. Gracias.

+0

Nota: hay algunos comentarios en la red que indican que si simplemente eliminas la aplicación, ** esperas más de 24 horas ** y vuelves a instalarla, de hecho, te da una segunda oportunidad. Espero eso ayude. – Fattie

Respuesta

54

No puede hacer que iOS vuelva a mostrar la alerta. Aquí hay un mejor enfoque:

  1. Mantenga una marca en su NSUserDefaults indicando si debe registrarse para recibir notificaciones automáticas al momento del lanzamiento. Por defecto, el indicador es falso.
  2. Cuando se lance, revise la bandera. Si es verdad, regístrese de inmediato. De lo contrario, no se registre.
  3. La primera vez que el usuario hace algo que causaría una notificación de inserción, regístrese para recibir notificaciones push y configure la marca en NSUserDefaults.

De esta manera, cuando el usuario recibe la alerta de notificaciones push, tiene una idea de por qué la está recibiendo, y podría decir que sí.

+0

Gracias por la respuesta rápida. Acabo de llegar a la misma conclusión después de leer la respuesta en esta publicación http://stackoverflow.com/questions/2438400/reset-push-notification-settings-for-app (busqué repetidamente antes de publicar pero, por supuesto, encontré la respuesta después de publicar). Me pregunto por qué casi todas las aplicaciones se registran en el primer lanzamiento. Parece un mejor modelo para registrarse una vez que el usuario ha experimentado la aplicación. – Joel

+7

Tan molesto que esto no se puede hacer con fines de prueba ... – jjxtra

+4

En realidad, registrarse en el primer lanzamiento es una sugerencia hecha en la documentación: "Una aplicación debe registrarse cada vez que se inicia y le da a su proveedor el token actual. ./ Al solicitar el token del dispositivo y pasarlo al proveedor cada vez que se inicia la aplicación, ayuda a garantizar que el proveedor tenga el token actual para el dispositivo. Si el usuario restaura una copia de seguridad en un dispositivo o computadora que no sea la que para la cual se creó la copia de seguridad, debe iniciar la aplicación al menos una vez para que reciba las notificaciones nuevamente ". –

4

También estoy enfrentando un tipo similar de problema. Después de buscar tanto, decidí hacer lo que usted llama el Plan B. Es decir, mostrarle al usuario mi propia alerta diciendo que el impulso debe habilitarse para una mejor experiencia, o algo así.

Para comprobar que los tipos de empuje necesarios están habilitados, utilice este método:

- (UIRemoteNotificationType)enabledRemoteNotificationTypes 

UIApplication reference

creo que esta es la solución limpia. Considere un caso en el que, después de aceptar la solicitud al principio, el usuario desactive push, esto funcionará incluso en ese escenario.

+0

Está en desuso en iOS8, mira esta respuesta: http://stackoverflow.com/a/25197833/616032 –

3

La mejor manera de hacerlo sería (si estás haciendo un juego) hacerles una pregunta preventiva (por ejemplo, ¿Quieres que te avisemos cuando tus cultivos estén listos para ser cosechados? -Sí-No) y cuando responden "sí", activa la ventana emergente nativa de iOS. luego puedes crear capas en múltiples preguntas a lo largo del embudo de usuario, y eventualmente podrás atraparlas todas.

+1

¿Qué haces después de que el usuario ha aceptado la pregunta preventiva pero ha rechazado el diálogo del sistema? – Zorayr

+0

Esta es una buena solución pero para un problema diferente. No es exactamente relevante para la pregunta original. –

Cuestiones relacionadas