• 08-04-2020, 18:13:23
    #1
    Merhabalar,

    Firebase ile bildirim göndermeye çalıştığımda aşağıdaki şekilde konsola mesaj yazdırılıyor fakat üst çubuğa bildirim olarak düşmüyor. Bu konuda yardım edebilirseniz sevinirim
  • 08-04-2020, 19:08:56
    #2
    OneSignal kullanarak daha hızlı sonuç alabilirsin.Bir çok uygulamada kullandım ve gayet memnunum. Kullanıcıya bir token veriyor ve basit fonksiyonlar ile bildirim gönderebiliyorsun.
  • 14-05-2020, 01:49:30
    #3
    Merhaba,

    Sorunu çözebildiniz mi? Çözebildiyseniz paylaşır mısınız?

    berkaycatak adlı üyeden alıntı: mesajı görüntüle
    Merhabalar,

    Firebase ile bildirim göndermeye çalıştığımda aşağıdaki şekilde konsola mesaj yazdırılıyor fakat üst çubuğa bildirim olarak düşmüyor. Bu konuda yardım edebilirseniz çok sevinirim.

    I/flutter (30963): on message {notification: {title: dhenemeeeyy, body: heyyy}, data: {click_action: FLUTTER_NOTIFICATION_CLICK}}
    MainActivity.kt
    package com.example.wordpress_app
    
    import android.os.Bundle
    
    import io.flutter.app.FlutterActivity
    import io.flutter.plugins.GeneratedPluginRegistrant
    
    import android.os.Build
    import android.view.ViewTreeObserver
    import android.view.WindowManager
    class MainActivity: FlutterActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    
    GeneratedPluginRegistrant.registerWith(this)
    
    
    }
    }
    Application.kt
    package com.example.wordpress_app
    
    import io.flutter.app.FlutterApplication
    import io.flutter.plugin.common.PluginRegistry
    import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
    import io.flutter.plugins.GeneratedPluginRegistrant
    import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
    
    class Application : FlutterApplication(), PluginRegistrantCallback {
    override fun onCreate() {
    super.onCreate()
    FlutterFirebaseMessagingService.setPluginRegistrant(this)
    }
    
    override fun registerWith(registry: PluginRegistry) {
    GeneratedPluginRegistrant.registerWith(registry)
    }
    }
    push_nofitications.dart
    import 'dart:io';
    
    import 'package:firebase_messaging/firebase_messaging.dart';
    import 'package:flutter/cupertino.dart';
    import 'package:flutter/material.dart';
    import 'package:flutter_local_notifications/flutter_local_notifications.dart';
    import 'package:fluttertoast/fluttertoast.dart';
    
    class PushNotificationsManager {
    PushNotificationsManager._();
    
    factory PushNotificationsManager() => _instance;
    
    static final PushNotificationsManager _instance =
    PushNotificationsManager._();
    
    final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
    bool _initialized = false;
    
    Future<void> init(dynamic myBackgroundMessageHandler, dynamic displayNotification) async {
    final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
    Future onSelectNotification(String payload) async {
    if (payload != null) {
    debugPrint('notification payload: ' + payload);
    }
    /*Navigator.push(
          context,
          new MaterialPageRoute(builder: (context) => new SecondScreen(payload)),
        );*/
    }
    
    Future onDidRecieveLocalNotification(
    int id, String title, String body, String payload) async {
    // display a dialog with the notification details, tap ok to go to another page
    }
    
    // TOP-LEVEL or STATIC function to handle background messages
    
    _firebaseMessaging.configure(
    onMessage: (Map<String, dynamic> message) {
    print('on message ${message}');
    // initialise the plugin. app_icon needs to be a added as a drawable resource to the Android head project
    displayNotification(message);
    // _showItemDialog(message);
    },
    onResume: (Map<String, dynamic> message) {
    print('on resume $message');
    },
    onLaunch: (Map<String, dynamic> message) {
    print('on launch $message');
    },
    onBackgroundMessage: Platform.isIOS ? null : myBackgroundMessageHandler,
    );
    _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);
    print(token);
    });
    }
    }
    main.dart
    static Future<dynamic> myBackgroundMessageHandler(
    Map<String, dynamic> message) {
    if (message.containsKey('data')) {
    // Handle data message
    final dynamic data = message['data'];
    print("background $data");
    }
    
    if (message.containsKey('notification')) {
    // Handle notification message
    final dynamic notification = message['notification'];
    print("background $notification");
    }
    }
    
    final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
    FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin =
    new FlutterLocalNotificationsPlugin();
    
    @override
    void initState() {
    var initializationSettingsAndroid =
    new AndroidInitializationSettings('@mipmap/launcher_icon');
    
    var initializationSettingsIOS = new IOSInitializationSettings(
    onDidReceiveLocalNotification: onDidRecieveLocalNotification);
    
    var initializationSettings = new InitializationSettings(
    initializationSettingsAndroid, initializationSettingsIOS);
    
    flutterLocalNotificationsPlugin.initialize(initializationSettings,
    onSelectNotification: onSelectNotification);
    _firebaseMessaging.subscribeToTopic("tanticaret");
    _firebaseMessaging.configure(
    onMessage: (Map<String, dynamic> message) {
    print('on message ${message}');
    displayNotification(message);
    },
    onResume: (Map<String, dynamic> message) {
    print('on resume $message');
    },
    onLaunch: (Map<String, dynamic> message) {
    print('on launch $message');
    },
    onBackgroundMessage:
    Platform.isAndroid ? myBackgroundMessageHandler : null);
    _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);
    print(token);
    });
    super.initState();
    }
    
    Future displayNotification(Map<String, dynamic> message) async {
    var androidPlatformChannelSpecifics = new AndroidNotificationDetails(
    'channelid', 'flutterfcm', 'your channel description',
    importance: Importance.Max, priority: Priority.High);
    var iOSPlatformChannelSpecifics = new IOSNotificationDetails();
    var platformChannelSpecifics = new NotificationDetails(
    androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
    await flutterLocalNotificationsPlugin.show(
    0,
    message['notification']['title'],
    message['notification']['body'],
    platformChannelSpecifics,
    );
    }
    
    Future onSelectNotification(String payload) async {
    if (payload != null) {
    debugPrint('notification payload: ' + payload);
    }
    /*Navigator.push(
          context,
          new MaterialPageRoute(builder: (context) => new SecondScreen(payload)),
        );*/
    }
    
    Future onDidRecieveLocalNotification(
    int id, String title, String body, String payload) async {
    // display a dialog with the notification details, tap ok to go to another page
    
    showDialog(
    context: context,
    builder: (BuildContext context) => new CupertinoAlertDialog(
    title: new Text(title),
    content: new Text(body),
    actions: [
    CupertinoDialogAction(
    isDefaultAction: true,
    child: new Text('Tamam'),
    onPressed: () async {
    Navigator.of(context, rootNavigator: true).pop();
    },
    ),
    ],
    ),
    );
      }
  • 31-05-2020, 19:24:16
    #4
    Kimlik doğrulama veya yönetimden onay bekliyor.
    üst bildirim çubuğunda uygulama kapalı iken veya arka plana alınmışken gelir. uygulama açıkken sizin stream i dinleyip belki özel bir alertdialog veya modal tarzı birşey göstermeniz gerekir.