首页 > 其他分享 >flutter 桌面通知 气泡消息数量

flutter 桌面通知 气泡消息数量

时间:2023-12-25 10:38:02浏览次数:36  
标签:case 桌面 app AppLifecycleState break override flutter 气泡

先上效果

原理

  • Android 操作系统提供的 NotificationManager 接口来设置应用程序图标上的徽章
  • iOS 操作系统提供的 UIApplication.shared.applicationIconBadgeNumber

使用flutter

flutter pub add flutter_app_badger         

通过在启动 退出时候更新气泡

import 'package:flutter/cupertino.dart';
import 'package:flutter_app_badger/flutter_app_badger.dart';

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

  @override
  State<StatefulWidget> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> with WidgetsBindingObserver {
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addObserver(this);
  }

  @override
  void dispose() {
    WidgetsBinding.instance.removeObserver(this);
    super.dispose();
  }

  @override
  void didChangeAppLifecycleState(AppLifecycleState state) {
    switch (state) {
      case AppLifecycleState.resumed:
        print("app in resumed");

        if (PushNotificationsManager.appBadgeSupported) {
          FlutterAppBadger.updateBadgeCount(14);
        }

        break;
      case AppLifecycleState.inactive:
        print("app in inactive");

        break;
      case AppLifecycleState.paused:
        print("app in paused");

        break;
      case AppLifecycleState.detached:
        print("app in detached");

        break;
      case AppLifecycleState.hidden:
        // TODO: Handle this case.
    }
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    throw UnimplementedError();
  }
}

标签:case,桌面,app,AppLifecycleState,break,override,flutter,气泡
From: https://www.cnblogs.com/guanchaoguo/p/17925570.html

相关文章

  • 在Flutter中使用PhotoViewGallery指南
    介绍Flutter中的PhotoViewGallery是一个功能强大的插件,用于在应用中展示可缩放的图片。无论是构建图像浏览器、相册应用,还是需要在应用中查看大图的场景,PhotoViewGallery都是一个不错的选择。添加依赖首先,需要在pubspec.yaml文件中添加photo_view插件的依赖。打开该文件,然后在depen......
  • Flutter 显式动画
    创建AnimationController的同时,也赋予了一个vsync参数。vsync的存在防止后台动画消耗不必要的资源。您可以通过添加SingleTickerProviderStateMixin到类定义,将有状态的对象用作vsync因为addListener()函数调用setState(),所以每次Animation生成一个新的数字,当前帧......
  • Flutter-Dart中(){}和()=>{}的细微区别
    ()=>{}在Dart语言中,=>符号是箭头语法的一部分,它用于创建单行函数或表达式的缩写。在你的两个例子中,使用()=>和(){}都是合法的,但有细微的区别。()=>箭头函数(Arrowfunction):这是一种简写形式,适用于只有一条语句的函数体。在这种情况下,函数体的结果就是函数的返回值。示例:on......
  • Flutter子工程编译,Ruby升级及Cocoapods安装问题集
    背景:工程为iOS原生与Flutter混合开发的工程,在编译Flutter子工程的过程中报了一个错,一度让我以为是ruby与pod的版本不兼容导致了一些奇奇怪怪的问题,随即来回折腾了Ruby环境升级与pod的升级安装。问题1:flutter子工程执行了flutterpubget,执行flutterbuildios--no-codesign时,报......
  • Flutter 隐式动画
    通过几行代码就可以实现隐式动画,由于隐式动画背后的实现原理和繁琐的操作细节都被隐去了,所以叫隐式动画,FLutter中提供的[AnimatedContainer]、[AnimatedPadding]、[AnimatedPositioned.AnimatedOpacity]、[AnimatedDefaultTextStyle]、[AnimatedSwitcher]都属于隐式动画隐式动画......
  • Android应用开发长按拖拽-Flutter的LongPressDraggable控件回调函数onDraggableCancel
    onDraggableCanceled介绍LongPressDraggable的onDraggableCanceled回调在拖动被取消时触发。拖动可能会被取消,例如用户在拖动开始后移动了太快或在放置之前取消了拖动。onDraggableCanceled的使用以下是如何使用onDraggableCanceled的示例:LongPressDraggable<int>(//......
  • 在网页中调用MSTSC打开远程桌面
    1.修改注册表添加自定义URL协议MSTSC[HKEY_CLASSES_ROOT\MSTSC]@="URL:MSTSCProtocol""URLProtocol"=""[HKEY_CLASSES_ROOT\MSTSC\DefaultIcon][HKEY_CLASSES_ROOT\MSTSC\shell][HKEY_CLASSES_ROOT\MSTSC\shell\open][HKEY_CLASSE......
  • 以root登陆桌面_需要图形化界面
    修改配置1.suroot:在终端里切换到root用户下2.gedit /etc/pam.d/gdm-autologin(打开文本编辑器)这一行前加一个#,进行注释#auth required pam_succeed_if.so user!=root quiet_success关闭并保存3.gedit /etc/pam.d/gdm-password这一行前加一个#,进行注释#auth......
  • Flutter AnimatedList 实现动态列表
    import'dart:async';import'package:flutter/material.dart';finalGlobalKey_globalKey=GlobalKey();classMyAnimatedListextendsStatelessWidget{constMyAnimatedList({super.key});@overrideWidgetbuild(BuildContextcont......
  • Flutter 编译是pod intsall github 资源下载失败
    在fluterr编译报错然后显示github.xxxxx访问超时处理办法podinstall主要是读取profile文件platform:ios,'9.0'target'YourAppName'douse_frameworks!#这是安装依赖位置pod'SomeDependency'#添加其他依赖项...end想办法下载到github的文......