Impostazione delle Notifiche Push dell'App in Flutter utilizzando PushEngage

L'SDK Flutter di PushEngage semplifica l'integrazione delle notifiche push nelle tue applicazioni Flutter, offrendo una compatibilità trasparente con le piattaforme Android e iOS.

Questa guida ti accompagnerà attraverso i passaggi per configurare l'SDK Flutter di PushEngage e abilitare le notifiche push sulle tue app Android e iOS.

Prima di iniziare

Ecco un elenco delle cose che ti serviranno

  • Un progetto Flutter e un account PushEngage. Se non hai un account, puoi registrarti qui.
  • Account Firebase con configurazione di Firebase Cloud Messaging (FCM) per Android.
  • Un account sviluppatore Apple per configurare i servizi Apple Push Notification (APN) per iOS.

Installazione

1. Apri il tuo progetto Flutter nel tuo editor di codice.

2. Aggiungi la seguente dipendenza nel tuo file pubspec.yaml:

dependencies:
	pushengage_flutter_sdk: ^1.0.0

3. Esegui il seguente comando per installare il pacchetto.

dependencies:
flutter pub get

Configurazione di Android

Aggiungi il repository JitPack. L'SDK Android di PushEngage è distribuito tramite JitPack, quindi è un repository indispensabile per il corretto funzionamento della configurazione dell'SDK.

Progetti più recenti →

All'interno di android/settings.gradle

dependencyResolutionManagement { repositories { … } } 

Progetti più vecchi →

All'interno di android/build.gradle

allprojects { repositories { … } } 

Groovy:

maven { url 'https://jitpack.io' } 

Kotlin DSL:

maven { url = uri("https://jitpack.io") }

Configurazione di Firebase Cloud Messaging (FCM)

Per abilitare le notifiche push per Android, dovrai configurare Firebase Cloud Messaging (FCM):

1. Accedi alla console Firebase utilizzando il tuo account Google.

2. Crea un nuovo progetto o seleziona un progetto esistente: Fai clic su “Aggiungi progetto” per creare un nuovo progetto, oppure seleziona un progetto esistente dal tuo elenco. Se stai utilizzando un progetto esistente, procedi direttamente al passaggio 4.

3. Inserisci i dettagli del progetto: Aggiungi un nome per il tuo progetto e fai clic su Continua. Completa il processo di configurazione facendo clic su “Crea progetto” nella schermata finale.

4. Aggiungi un'app Android al progetto: Nella dashboard del tuo progetto Firebase, fai clic sull'icona Android per aggiungere un'app Android.

5. Configura l'app Android: Inserisci il nome del pacchetto della tua app Android (trovato in android/app/build.gradle sotto il blocco android) e fornisci un nome all'app. Fai clic su Registra al termine.

6. Scarica il file di configurazione: Scarica il file google-services.json e posizionalo nella directory principale del modulo della tua app Android in android/app/

7. Genera JSON del Service Account

  • Nella console Firebase, fai clic sull'icona Impostazioni accanto a “Panoramica progetto” in alto a sinistra, quindi seleziona Impostazioni progetto.
  • Naviga nella scheda Account di servizio.
  • Fai clic su Genera nuova chiave privata e scarica il file .json.
  • Conserva questo file al sicuro poiché ti servirà per la configurazione della dashboard di PushEngage.

8. Recupera l'ID mittente

  • Nella console Firebase, fai clic sull'icona Impostazioni accanto a Panoramica del progetto in alto a sinistra e seleziona “Impostazioni del progetto”.
  • Seleziona la scheda Cloud Messaging. Qui troverai l'ID mittente, necessario per l'inizializzazione dell'SDK di PushEngage.

Integra FCM con la dashboard di PushEngage

Per integrare senza problemi i dettagli FCM con la dashboard di PushEngage, segui i passaggi descritti di seguito:

  1. Accedi al tuo account PushEngage effettuando l'accesso con le tue credenziali.
  1. Vai su Impostazioni » Installazione e scegli la scheda SDK Android
  1. Ora, Configura le impostazioni FCM
  • Inserisci il tuo ID mittente Firebase (recuperato dalla console Firebase).
  • Carica il file JSON dell'account di servizio (scaricato da Firebase).
  • Fai clic sul pulsante Aggiorna per salvare queste impostazioni.

5. Copia l'ID dell'app: Dopo aver configurato le impostazioni FCM, ti verrà fornito un ID dell'app. Copia questo ID dell'app poiché è necessario per inizializzare l'SDK Android di PushEngage nella tua app Flutter.

Configurazione iOS

Configurazione del progetto

Ti chiediamo di seguire i passaggi seguenti dopo aver aperto il tuo progetto.

Ecco come puoi aprire un progetto: nome_tuo_progetto » iOS » Runner.xcworkspace.

1. Abilita notifiche remote

  • Apri il tuo progetto Xcode e seleziona il progetto principale nel Navigatore Progetto.
  • Scegli il tuo target principale dell'app.
  • Naviga su “Firma e funzionalità.
  • Assicurati che la funzionalità Modalità in background sia aggiunta. In caso contrario, aggiungila facendo clic sul pulsante “+ Funzionalità“.
  • Allo stesso modo, assicurati che la funzionalità Notifiche push sia aggiunta. In caso contrario, aggiungila utilizzando il pulsante “+ Funzionalità“.

Se la funzionalità “Notifiche push” non è visibile in Xcode:

  • Vai al tuo account sviluppatore Apple.
  • Naviga su “Certificati, ID e profili.” Seleziona l'identificatore della tua app.
  • Modifica la configurazione del tuo ID app e assicurati che Notifiche push sia abilitato.
  • Torna a Xcode e prova ad aggiungere nuovamente la funzionalità Notifiche push.

2. Abilita le modalità in background

  • Nel tuo progetto Xcode, naviga su “Firma e funzionalità.
  • All'interno di “Modalità in background“, abilita sia “Notifiche remote” che “Fetch in background.
  • Questo passaggio garantisce che la tua app possa gestire in modo efficiente le notifiche remote e i fetch in background.

Se non disponi di un certificato APN per iOS, puoi crearne uno utilizzando la guida qui.

Successivamente, devi aggiungere l'estensione Notification Service e l'estensione Notification Content solo per iOS.

Creazione dell'estensione del servizio di notifica

La Notification Service Extension migliora la capacità della tua app iOS di ricevere notifiche. Viene utilizzata per modificare il contenuto della notifica o per recuperare/elaborare dati alla ricezione della notifica. Segui questi passaggi per creare una Notification Service Extension:

  1. Apri Xcode e naviga nel tuo progetto.
  2. Seleziona File » Nuovo » Target dal menu.
  3. Nella finestra di selezione del modello, scegli Estensione Notification Service e fai clic su Avanti.

4. Fornisci un nome per la tua estensione, ad esempio, PushEngageNotificationServiceExtension, e fai clic su Fine.

4. Fornisci un nome per la tua estensione, ad esempio, PushEngageNotificationServiceExtension, e fai clic su Fine.

5. Al termine della creazione dell'Estensione Notification Service, potrebbe esserti richiesto di attivarla. Non attivarla immediatamente. L'attivazione dell'estensione sposterebbe il focus del debug di Xcode dalla tua app all'estensione. Se la attivi per errore, non preoccuparti; puoi tornare al debug della tua app all'interno di Xcode.

6. Nel navigatore del progetto, seleziona la directory principale del progetto e seleziona il target NotificationServiceExtension nel progetto dall'elenco dei target creato al punto 4.

7. Imposta il Deployment Target su iOS 10 o versioni successive, che è la versione di iOS in cui Apple ha rilasciato il supporto per questa estensione. 

Inizializzazione dell'SDK di PushEngage per l'estensione del servizio di notifica

Per garantire il corretto funzionamento dell'SDK PushEngage nella tua Estensione Notification Service iOS, segui i passaggi seguenti

  1. Apri nome_tuo_progetto » ios » Podfile.
  2.  Aggiungi quanto segue in fondo al tuo Podfile:
post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end

target 'Your_Notification_Service_Extension_Name' do
    use_frameworks!
    pod 'PushEngageExtension', '1.0.0'

  end
  1. Installa la dipendenza:

Ora devi eseguire il comando nella directory iOS del tuo progetto ed eseguire il seguente comando:

pod repo update 

pod install
  1. Nel tuo target di estensione del servizio di notifica, assicurati di importare il framework PushEngage e aggiungere il codice di inizializzazione necessario. Ecco come puoi farlo usando Swift.
import UserNotifications
import PushEngageExtension

class NotificationService: UNNotificationServiceExtension {

    var contentHandler: ((UNNotificationContent) -> Void)?
    var bestAttemptContent: UNMutableNotificationContent?
    var request: UNNotificationRequest?

    override func didReceive(_ request: UNNotificationRequest,
                             withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) {
        self.request = request
        self.contentHandler = contentHandler
        self.bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)

        if let bestContent = bestAttemptContent {
            PushEngageExtension.didReceiveNotificationExtensionRequest(request, bestContentHandler: bestContent)
            contentHandler(bestContent)
        }
    }

    override func serviceExtensionTimeWillExpire() {
        if let contentHandler = contentHandler,
           let request = request,
           let bestAttemptContent = bestAttemptContent {
            guard let content = PushEngageExtension.serviceExtensionTimeWillExpire(request, content: bestAttemptContent) else {
                contentHandler(bestAttemptContent)
                return
            }
            contentHandler(content)
        }
    }
}

Creazione dell'estensione del contenuto di notifica

Per migliorare il modo in cui aggiungere un'interfaccia utente personalizzata, dovrai creare una Notificaton Content Extension. Segui i passaggi seguenti per configurare l'estensione:

  1. In Xcode, vai su File » Nuovo » Target.
  2. Seleziona Estensione Contenuto Notifica e fai clic su Avanti.

3. Non selezionare “Attiva” nella finestra di dialogo che appare dopo aver fatto clic su Fine. Annullando, Xcode continuerà a eseguire il debug della tua app invece dell'estensione. Se la attivi accidentalmente, torna al debug della tua app all'interno di Xcode (accanto al pulsante di esecuzione).

4. Nel navigatore di progetto, seleziona la directory principale del progetto e seleziona il target NotificatonContentExtension nel progetto dall'elenco dei target creato al passaggio n. 2.

5. Imposta il Deployment Target su iOS 10 o versioni successive, che è la versione di iOS in cui Apple ha rilasciato il supporto per questa estensione. 

Inizializzazione dell'SDK di PushEngage per l'estensione del contenuto di notifica

Per garantire il corretto funzionamento del PushEngage SDK nella tua iOS Notification Content Extension, segui questi passaggi:

Apri nome_tuo_progetto » iOS » Podfile.

Aggiungi quanto segue in fondo al tuo Podfile:

target 'Your_Notification_Content_Extension_Name' do
    use_frameworks!
    pod 'PushEngageExtension', '1.0.0'
  end
  1. Installa la dipendenza: Ecco il codice che devi eseguire nella tua riga di comando.

e

pod repo update 
pod install
  1. Nel tuo target di estensione del contenuto di notifica, assicurati di importare il framework PushEngage e aggiungere il codice di inizializzazione necessario. Ecco come puoi farlo con alcuni esempi di elementi UI usando Swift.
import UIKit
import UserNotifications
import UserNotificationsUI
import PushEngageExtension

@available(iOSApplicationExtension 10.0, *)

class NotificationViewController: UIViewController, UNNotificationContentExtension {
    fileprivate var hostingView: UIHostingController<ContentView>?
    override func viewDidLoad() {
        super.viewDidLoad()
        self.view.backgroundColor = .white
    }

    func didReceive(_ notification: UNNotification) {
        if(notification.request.content.categoryIdentifier == "your_identifier"){
            let payLoad = PushEngageExtension.getCustomUIPayLoad(for: notification.request)
  //pass the payload to your custom View
            let view = CustomView(payLoadInfo: payLoad)
            hostingView = UIHostingController(rootView: view)
If let customView = self.hostingView {
            addChild(hostingView!)
}
        }
    }
}

Aggiungi gruppi di app

I gruppi di app sono essenziali per abilitare la comunicazione tra l'app principale, l'estensione del servizio di notifica e l'estensione del contenuto di notifica. Segui questi passaggi per aggiungere i gruppi di app al tuo progetto iOS:

Se hai un gruppo di app esistente e vuoi usarlo solo, salta al passaggio n. 4.

  1. Nel tuo progetto Xcode, nel navigatore di progetto, seleziona la directory principale del progetto e seleziona il target principale dell'app.
  2. Naviga alla scheda Firma & Capacità.
  3. Fai clic sul pulsante “+ Capacità” e seleziona Gruppi di App dall'elenco.

4. Fai clic sul pulsante + per aggiungere un Gruppo di app.

5. Aggiungi un nome univoco al tuo Gruppo di app e fai clic su OK.

6. Nell'area di modifica principale, seleziona il target principale della tua app.  hai creato un gruppo di app, fornisci il nome del gruppo nella tua applicazione Info.plist con la chiave PushEngage_App_Group_Key.

7. Aggiungi la stessa chiave e valore nel file Info.plist della Notification Service Extension.

8. Assicurati di selezionare lo stesso gruppo di app sia nel Target dell'Applicazione Principale che nella Tua_Notification_Service_Extension.

Inizializza PushEngage SDK

Nel tuo main.dart, inizializza il SDK PushEngage.

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});
  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  Future<void> initPlatformState() async {
    PushEngage.setAppId("your_pushengage_app_id");
  }
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: 'PushEngage',
      debugShowCheckedModeBanner: false,
      home: Home(),
    );
  }
}

Nel tuo AppDelegate.swift dell'app iOS

import Flutter
import UIKit
import PushEngage

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
    
    override init() {
        super.init()
        PushEngage.swizzleInjection(isEnabled: true)
    }
    
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        if #available(iOSApplicationExtension 10.0, *) {
            UNUserNotificationCenter.current().delegate = self
        }
        GeneratedPluginRegistrant.register(with: self)
        PushEngage.setBadgeCount(count: 0)
        PushEngage.setNotificationWillShowInForegroundHandler { notification, completion in
            if notification.contentAvailable == 1 {
                // in case developer failed to set completion handler. After 25 sec handler will call.
                completion(nil)
            } else {
                completion(notification)
            }
        }
        return super.application(application, didFinishLaunchingWithOptions: launchOptions)
    }
}

Gestione deepLink

Un deepLinkStream è qualcosa che emette dati di deep link. 

class Home extends StatefulWidget {
  const Home({super.key});

  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  late StreamSubscription _deepLinkSubscription;

  @override
  void initState() {
    super.initState();
    PushEngage.deepLinkStream.listen((data) {
      _handleDeepLink(data);
    });
  }

  void _handleDeepLink(Map<String, dynamic>? data) {
    // Parse the deep link and navigate accordingly
    Uri uri = Uri.parse(data?['deepLink']);
    print('Path: ${uri.path}');
    updateResponseText(data.toString());
    switch (uri.path) {
      case 'trigger':
      case '/trigger':
        print(‘your_implementation’)
        break;
    }
  }

Questo è tutto, hai ora integrato con successo il SDK Flutter per App Android e iOS.

Se riscontri problemi, ti preghiamo di contattarci cliccando qui. Il nostro team di supporto sarà in grado di aiutarti.

Ancora bloccato? Come possiamo aiutarti?
Ultimo aggiornamento il 9 luglio 2026

Coinvolgi e fidelizza i visitatori dopo che hanno lasciato il tuo sito web

Aumenta il valore di ogni visita web con notifiche push difficili da ignorare.

  • Piano gratuito per sempre
  • Configurazione semplice
  • Supporto a 5 stelle