加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

dart – 如何在flutter中实现推送通知

发布时间:2020-12-14 14:57:57 所属栏目:百科 来源:网络整理
导读:嗨,我正在尝试实施推送通知,如何显示为通知可以任何一个帮助,我能听,因为我收到通知但我无法看到消息,它出现作为警报,但我想作为通知可以任何一个帮助,在 Android或iOS中我们应该在清单文件和应用程序委托文件中如何在颤动 我的代码看起来像这样 class PushM
嗨,我正在尝试实施推送通知,如何显示为通知可以任何一个帮助,我能听,因为我收到通知但我无法看到消息,它出现作为警报,但我想作为通知可以任何一个帮助,在 Android或iOS中我们应该在清单文件和应用程序委托文件中如何在颤动

我的代码看起来像这样

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'),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),),));
  }

  }

解决方法

如果您尝试将消息放在锁定屏幕上,请确保您发送的是“通知”消息类型,而不是将传递给正在运行的应用程序的“数据”消息.您可以在Firebase开发人员指南中了解有关 different types of Firebase messages的更多信息.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读