es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Flutter iOS notification enviar click_action.

Estamos desarrollando con Flutter para Android e iOS en una aplicación móvil. Hemos tenido un problema durante aproximadamente 2 meses y no hemos podido resolverlo. El problema es:

Cuando hacemos clic en la notificación que enviamos, no se realiza ninguna acción en el lado de iOS y aparece una pantalla en negro. Este sistema, que funciona sin problemas en el lado de Android, no funciona en el lado de iOS. Después de investigar un poco, llegamos aquí: https://firebase.google.com/docs/reference/fcm/rest/v1/projects.messages

Realizamos una edición según este enlace, pero las notificaciones aún no funcionan correctamente en el lado de iOS.

Este es el código del mensaje que enviamos.

const message = {
    token: token,
    notification: {
      title: username,
      body: lastMessage,
      click_action: "FLUTTER_NOTIFICATION_CLICK",
    },
    data: {
      specificPageRouteId: lastSender.toString(),
      chatId: chatId.toString(),
      notificationType: "chat",
      messageType: messageType,
      click_action: "FLUTTER_NOTIFICATION_CLICK",
    },
};

No está funcionando; el anterior tampoco está enviando la notificación correctamente. Pero el problema principal es el problema de clic en la notificación entrante.

const message = {
    token: token,
    notification: {
      title: username,
      body: lastMessage,
    },
    data: {
      specificPageRouteId: lastSender.toString(),
      chatId: chatId.toString(),
      notificationType: "chat",
      messageType: messageType,
      click_action: "FLUTTER_NOTIFICATION_CLICK",
    },
};

¿Hay alguien que pueda ayudarnos con esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para un problema en el lado de iOS al usar Firebase Cloud Messaging en una aplicación Flutter

    Según el problema mencionado, el sistema de notificaciones funciona bien en el lado de Android pero no en el lado de iOS. Cuando se hace clic en la notificación, muestra una pantalla negra en lugar de realizar alguna acción. Después de investigar un poco, se utilizó el enlace proporcionado en la pregunta para resolver el problema, pero no fue útil.

    Al inspeccionar el código proporcionado, hay algunas cosas que se pueden corregir para resolver el problema en el lado de iOS.

    Aquí hay algunas cosas que se pueden intentar:

    • En el código del mensaje que se envía, se debe agregar la propiedad click_action al objeto de notificación y no al objeto de datos. Esto se debe hacer para asegurarse de que cuando se hace clic en la notificación, se realice la acción correcta en la aplicación.
    • Según la documentación de Flutter (https://firebase.flutter.dev/docs/messaging/notifications), para garantizar una experiencia fluida tanto en iOS como en Android, asegúrese de pasar tanto los parámetros de notificación como de datos.

    A continuación se muestra un ejemplo de cómo se puede modificar el código del mensaje:

    const message = {
      token: token,
      notification: {
        title: title,
        body: body,
        click_action: 'FLUTTER_NOTIFICATION_CLICK'
      },
      data: {
        route: route
      }
    };
    

    Aquí, se agrega la propiedad click_action al objeto de notificación y se pasa la ruta a través del objeto de datos.

    También se recomienda asegurarse de que la configuración correcta se haya realizado tanto en Firebase como en el lado de iOS. Por ejemplo, asegúrese de que la clave de autenticación APNs sea correcta y que se esté utilizando la clave del servidor correcta en el lado de Firebase.

    Si el problema persiste, sería mejor buscar ayuda de un experto en Flutter o iOS para identificar la causa raíz y resolver el problema.

Comments are closed.