如果能看到这篇文章的 一定已经对手机端的 消息推送通知 有了一定了解。
国内安卓厂商这里不提都有自己的FCM 可自行查找。(国内因无法科学原因?,不能使用谷歌服务)只说海外的。
目前 adnroid?和 ios 推送消息分别叫?FCM 和 APNs。这里通过 google 的?firebase? 分别向两个平台 同时推送消息 只需要配置一套服务便可以。 (firebase 推送消息服务免费-它除消息推送 还有很多服务 收费+)跟多产品了解?https://firebase.google.com/pricing?authuser=0&hl=zh-cn
这里是firebase官网地址?https://firebase.google.com/
以下是在?Mac 电脑下使用的。linux 应该区别不大。或许与window 下有一定区别就是配置环境变量部分 自行辨别。
目前只针对 android 进行了测试,日后会追加 ios 教程
?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 了?。
import 'package:firebase_messaging/firebase_messaging.dart';
class FirebaseService {
final _firebaseMessaging = FirebaseMessaging.instance;
Future<void> initNotifications() async {
await _firebaseMessaging.requestPermission();
// 获取Firebase Cloud 消息传递令牌
final fCMToken = await _firebaseMessaging.getToken();
print("message-Token:$fCMToken");
}
}
import './services/firebase_api.dart';
// 引入你的 firebase_api.dart
void main() async {
// 确保 Flutter 框架已经被初始化;
WidgetsFlutterBinding.ensureInitialized();
// 初始化云消息推送
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
await FirebaseService().initNotifications();
// ......
???????
到这里就结束了 可以启动运行你的项目了。?
**很重要的前提是 模拟器一定要有 谷歌商店等全套服务。 否则可以启动但无法使用推送服务。
**如何辨别看模拟器 是否安装全家桶即可,如没有(可以去Andorid studio 中增加有谷歌商店的 模拟器)
?
如上图所示:启动后可以看到 打印的token,复制此token
来到?firebase官网,你的账户中 点击它
?
点击 制作一个新的宣传活动-> 发送测试消息-> 添加Token
你可以在 模拟器中看见它了!
即便应用不在后台进程中运行, 它依然是有效的。?
你仍然可以进行对它的扩展 比如使用??flutter_local_notifications 插件 修改进行应用内的推送效果