web-dev-qa-db-fra.com

comment implémenter la notification Push en flutter

Salut, j'essaie d'implémenter la notification push dans flutter comment afficher comme notification peut aider quelqu'un, je peux écouter car je reçois une notification mais je ne suis pas en mesure de voir le msg et il apparaît comme une alerte mais je veux une notification quelqu'un peut-il aider et dans Android ou iOS, nous devrions directement dans le fichier manifeste et le fichier délégué de l'application qu'en est-il dans le flottement

et mon code ressemble à ceci

 class PushMessagingExample extends StatefulWidget {
 @override
 _PushMessagingExampleState createState() => new _PushMessagingExampleState();
 }

class _PushMessagingExampleState extends State<PushMessagingExample> {
String _homeScreenText = "Waiting for token...";
bool _topicButtonsDisabled = false;

final FirebaseMessaging _firebaseMessaging = new FirebaseMessaging();
final TextEditingController _topicController =
new TextEditingController(text: 'topic');

Future<Null> _showItemDialog(Map<String, dynamic> message) async {
final Item item = _itemForMessage(message);
showDialog<Null>(
    context: context,
    child: new AlertDialog(
      content: new Text("Item ${message} has been updated"),
      actions: <Widget>[
        new FlatButton(
            child: const Text('CLOSE'),
            onPressed: () {
              Navigator.pop(context, false);
            }),
        new FlatButton(
            child: const Text('SHOW'),
            onPressed: () {
              Navigator.pop(context, true);
            }),
      ],
    )).then((bool shouldNavigate) {
  if (shouldNavigate == true) {
    _navigateToItemDetail(message);
  }
});
}

 Future<Null> _navigateToItemDetail(Map<String, dynamic> message) async     {
final Item item = _itemForMessage(message);
// Clear away dialogs
Navigator.popUntil(context, (Route<dynamic> route) => route is PageRoute);
if (!item.route.isCurrent) {
  Navigator.Push(context, item.route);
}
}

  @override
 void initState() {
  super.initState();
_firebaseMessaging.configure(
  onMessage: (Map<String, dynamic> message) {
    print("onMessage: $message");
    print(message);
    _showItemDialog(message);
  },
  onLaunch: (Map<String, dynamic> message) {
    print("onLaunch: $message");
    print(message);
    _navigateToItemDetail(message);
  },
  onResume: (Map<String, dynamic> message) {
    print("onResume: $message");
    print(message);
    _navigateToItemDetail(message);
  },
);
_firebaseMessaging.requestNotificationPermissions(
    const IosNotificationSettings(sound: true, badge: true, alert: true));
_firebaseMessaging.onIosSettingsRegistered
    .listen((IosNotificationSettings settings) {
  print("Settings registered: $settings");
});
_firebaseMessaging.getToken().then((String token) {
  assert(token != null);
  setState(() {
    _homeScreenText = "Push Messaging token: $token";
  });
  print(_homeScreenText);
});
}

@override
Widget build(BuildContext context) {
return new Scaffold(


    body: new Material(
      child: new Column(
        children: <Widget>[
          new Center(
            child: new Text(_homeScreenText),
          ),

        ],
      ),
    ));
  }

  }
14
siva kumar

Les notifications push dans Flutter peuvent être particulièrement difficiles car vous devez faire deux fois le travail pour les faire fonctionner avec Android et les implémentations particulières d'iOS (les deux étant, bien sûr, assez différentes).

J'ai construit le SDK OneSignal pour flutter. Il sera prêt dans quelques jours. Nous travaillons très dur pour simplifier autant que possible les notifications Push, et il est facile d'utiliser notre SDK d'une manière conforme au RGPD.

Le repo est ici ( https://github.com/OneSignal/OneSignal-Flutter-SDK ), c'est open source et nous accueillons les contributions de n'importe qui. Il agit comme un wrapper au-dessus du natif Android et iOS OneSignal SDK.

6
Brad Hesse

Si vous essayez de mettre des messages sur l'écran de verrouillage, assurez-vous d'envoyer un type de message "notification", plutôt qu'un message "données" qui sera remis à l'application en cours d'exécution. Vous pouvez en savoir plus sur les différents types de messages Firebase dans le guide du développeur Firebase.

5
Collin Jackson