【问题标题】:Firebase notification won`t sound or vibrate flutterFirebase 通知不会发出声音或振动颤动
【发布时间】:2020-07-08 13:40:58
【问题描述】:

所以我在我的 futter 应用上启用了 firebase 消息传递,一切正常,但是当我在我的应用中收到通知时,它不会发出声音或振动,无论是 android 还是 ios。我相信 FCM 默认会这样做,我也有“IosNotificationSettings(声音:真,徽章:真,警报:真)”,但通知只是静音。你们知道会发生什么吗?我搜索了这种情况,但找不到任何关于它的信息。提前感谢您的帮助。

class _HomeScreenState extends State<HomeScreen>
with SingleTickerProviderStateMixin {

 String _homeScreenText = "Waiting for token...";

 final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();

 static const String contato = "contato";

 TabController _tabController;

 @override
 void initState() {
    _tabController = new TabController(length: 5, vsync: this);
    super.initState();

    _firebaseMessaging.configure(
       onMessage: (Map<String, dynamic> message) {
         print('on message $message');
       },
       onResume: (Map<String, dynamic> message) {
         print('on resume $message');
       },    
       onLaunch: (Map<String, dynamic> message) {
       print('on launch $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);
     });

     _firebaseMessaging.getToken().then((token) {
     Firestore.instance.collection("pushtokens").document().setData({"devtoken": token});
     });
    }

【问题讨论】:

    标签: flutter push-notification firebase-cloud-messaging


    【解决方案1】:

    您可以为 http 请求添加类似的内容以发送通知。

    但首先你需要检查的是你的手机是否允许应用通知。这让我失去了大部分时间。

    {
        topic: topic,
        android: {
          priority: "high",
          notification: {
            defaultSound: true,
            //sound: "default",
          },
        },
        data: {
          somedata: "value",
        },
        notification: {
          title: title,
          body: description,
          imageUrl: "https://i.picsum.photos/id/999/536/354.jpg?hmac=xYKikWHOVjOpBeVAsIlSzDv9J0UYTj_tNODJCKJsDo4",
        },
    }
    

    【讨论】:

      【解决方案2】:

      要在通知中启用声音,您需要在通知数据中添加sound: default 部分,如下所示:

      {
        data: {
          google.sent_time: 1588863942303, 
          click_action: FLUTTER_NOTIFICATION_CLICK, 
          google.original_priority: high,
          collapse_key: YourPackageName,
          google.delivered_priority: high,
          sound: default,
          from: YourSenderId,
          google.message_id: 0:1588863942508709%a91ceea4a91ceea4,
          google.ttl: 60
        },
        notification: {}
      }
      

      【讨论】:

      • @Teh Sunn Liu 我们到底在哪里添加这个?在颤振或 Firebase 内部?请解释
      • @Lefty 这个答案不是我发布的:)。我只是一个编辑。这通常可以从服务器添加到您的 HTTP 请求中。点击链接了解更多firebase.google.com/docs/reference/fcm/rest/v1/…
      • @Teh Sunn Liu ,一切都很好,我确实设法让它工作。谢谢
      • 我将它添加到notification 并且效果很好!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-31
      • 2021-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-14
      相关资源
      最近更新 更多