赞
踩
如果能看到这篇文章的 一定已经对手机端的 消息推送通知 有了一定了解。
国内安卓厂商这里不提都有自己的FCM 可自行查找。(国内因无法科学原因 ,不能使用谷歌服务)只说海外的。
目前 adnroid 和 ios 推送消息分别叫 FCM 和 APNs。这里通过 google 的 firebase 分别向两个平台 同时推送消息 只需要配置一套服务便可以。 (firebase 推送消息服务免费-它除消息推送 还有很多服务 收费+)跟多产品了解 https://firebase.google.com/pricing?authuser=0&hl=zh-cn
这里是firebase官网地址(需要VPN访问) https://firebase.google.com/
定义:
工作原理:
特点:
定义:
工作原理:
特点:
以下是在 Mac 电脑下使用的。linux 应该区别不大。或许与window 下有一定区别就是配置环境变量部分 自行辨别。
nodeJs (防小白:安装 nodeJs 会捆绑npm工具 )安装地址-下载LTS版即可-> Node.js
npm install -g firebase-tools
(linux 和 mac 平台 最好前面加上sudo 否则可能会报 权限不足的错误 无法访问文件夹)
sudo npm install -g firebase-tools
执行登陆命令:
firebase login
首先谷歌会问你是否同意采集一些信息 改善使用 等等,No 即可,之后会打开一个浏览器页面 让你登陆账号,(我这里用的是自己的谷歌账号登陆的,如果浏览器已经登陆了 可以直接选择使用谷歌账号)。
从任何目录运行以下命令来安装 FlutterFire CLI:
dart pub global activate flutterfire_cli
flutterfire configure
到此为止就完成了所有基本配置 之后就要在flutter 中启用 firebase 了 。
- flutter pub add firebase_core
-
- flutter pub add firebase_messaging
- import 'package:firebase_messaging/firebase_messaging.dart';
- import 'package:get/get.dart';
-
- @pragma('vm:entry-point')
- Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
- // If you're going to use other Firebase services in the background, such as Firestore,
- // make sure you call `initializeApp` before using other Firebase services.
- print("后台通知");
- print("Handling a background message: ${message.messageId}");
- print("title: ${message.notification?.title}");
- print("body: ${message.notification?.body}");
- print("payload: ${message.data}");
- }
-
- class FirebaseService {
- final _firebaseMessaging = FirebaseMessaging.instance;
-
- Future<void> initNotifications() async {
- await _firebaseMessaging.requestPermission();
- // await initPushNotifications();
- // 获取Firebase Cloud 消息传递令牌
- final fCMToken = await _firebaseMessaging.getToken();
- // 后台运行通知回调
- FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
- // 前台运行通知监听
- FirebaseMessaging.onMessage.listen(handleMessage);
- // 监听 后台运行时通过系统信息条打开应用
- FirebaseMessaging.onMessageOpenedApp.listen(onMessageOpenedApp);
- // 如需在每次令牌更新时获得通知
- FirebaseMessaging.instance.onTokenRefresh.listen((fcmToken) {
- // TODO: If necessary send token to application server.
-
- // 每当生成新令牌时,都会触发此回调。
- }).onError((err) {
- // Error getting token.
- });
- print("message-Token:$fCMToken");
- }
-
- void onMessageOpenedApp(RemoteMessage message) {
- print("打开通知");
- print("Handling a background message: ${message.messageId}");
- print("title: ${message.notification?.title}");
- print("body: ${message.notification?.body}");
- print("payload: ${message.data}");
- }
-
- void handleMessage(RemoteMessage? message) {
- // 如果消息不是空的话
- if (message == null) return;
- // 用户点击通知, 进入特定该页面
- // Get.toNamed("/home", arguments: message);
- print("前台通知");
- print("title: ${message.notification?.title}");
- print("body: ${message.notification?.body}");
- print("payload: ${message.data}");
- }
- }

- import './services/firebase_api.dart';
- // 引入你的 firebase_xxx.dart
-
- void main() async {
- // 确保 Flutter 框架已经被初始化;
- WidgetsFlutterBinding.ensureInitialized();
-
- // 初始化云消息推送
- await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
- await FirebaseService().initNotifications();
- // ......
**前提要素:你已经注册好 Apple 开发者账户,并开通了开发者账户。并且需要配置好 xcode 基本开发描述文件,在这简单说明。
生成并安装下图框选的证书,至少也要安装画勾的。(假设你已经正常安装他们了)
(相当于app Id)不然也是无法创建 描述文件的。选择你需要的插件,并勾选 Push Notifications。并在后面创建你的通知证书下载到本地,双击安装它。创建证书需要上传 Mac电脑钥匙串程序颁发请求证书,请按要求操作。
到这里就结束了 可以启动运行你的项目了。
很重要的前提是 模拟器一定要有 谷歌商店等全套服务。 否则可以启动但无法使用推送服务。
如何辨别看模拟器 是否安装全家桶即可,如没有(可以去Andorid studio 中增加有谷歌商店的 模拟器)
Ios 前提需要真机才能接到推送通知,Simulator 模拟器无法接到推送通知。
如上图所示:启动后可以看到 打印的token,复制此token
来到 firebase官网,你的账户中 点击它
点击 制作一个新的宣传活动-> 发送测试消息-> 添加Token
你可以在 Android模拟器/iphone 中看见它了!
即便应用不在后台进程中运行, 它依然是有效的。
你仍然可以进行对它的扩展 比如使用 flutter_local_notifications 插件 修改进行应用内的推送效果
启动器红点教程>>: 给Flutter + FireBase 增加 badge 徽章,App启动器 通知红点。-CSDN博客
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。