Unity3D-使用Firebase中的云消息推送

60 篇文章 3 订阅
40 篇文章 0 订阅

在此记录下使用Firebase云消息推送的过程:

在Firebase的console里面,选中自己的项目,左边菜单栏有个Project Overview的标签,有个齿轮图标,点进去可以看到项目设置;


我们需要在“云消息推送”的子标签里面上传一个“APNs 身份验证密钥”,该文件是需要你去苹果开发者网址下载一个.p8的密钥文件,等于是拿到苹果的远程推送的授权一样。接下来,我们就去 https://developer.apple.com/account/ios/certificate/ 这个里面的Keys下方创建一个APNs的文件



点击右边那个“+”号,添加一个新文件,取一个名字,勾上APNs



创建完毕之后,就可以点下载按钮,把这个文件下载下来啦,下载下来的就是.p8文件了!

然后到Firebase的console上面,把下载下来的.p8文件上传到第一张图 APNs 身份验证 的位置



其中,密钥ID是指刚刚生成的.p8文件的Key ID



而应用前缀ID是苹果开发者网址里面展示AppID里面的你自己的项目AppID下面的一个前缀,可以在苹果开发者网址看到



这里设置完毕之后,就可以愉快的使用Firebase的云消息推送啦,不过你得使用真机测试,否则不会起作用哦!


使用就很简单了,其实都不需要在代码中添加额外代码,但是,如果需要对接受到的消息进行处理,那么还是要添加代码的

加入头文件:

using Firebase;
using System.Threading.Tasks;
using Firebase.Unity.Editor;
using Firebase.Messaging;


然后在启动的时候初始化,设置监听回调:

public void InitMessaging(){
        FirebaseMessaging.TokenReceived += OnMessagingTokenReceived;
        FirebaseMessaging.MessageReceived += OnMessageReceived;
    }
    void FreeMessaging(){
        FirebaseMessaging.TokenReceived -= OnMessagingTokenReceived;
        FirebaseMessaging.MessageReceived -= OnMessageReceived;
    }
    void OnMessagingTokenReceived(object sender, TokenReceivedEventArgs token){
        Debug.Log("Received Registration Token: " + token.Token);
    }
    void OnMessageReceived(object sender, MessageReceivedEventArgs args){
        Debug.Log("Received a new message from: " + args.Message.From);
        Debug.Log("Message ID: " + args.Message.MessageId);
        Debug.Log("Message Badge: " + args.Message.Notification.Badge);
        Debug.Log("Message Title: " + args.Message.Notification.Title);
        Debug.Log("Message Body: " + args.Message.Notification.Body);
    }

另外,如果想添加图标上的badge number,是可以直接在Firebase的console上面设置的,在编辑消息里面,高级选项中设置是否有声音,是否有iOS标志,以及标志的数量



到这里,云消息推送就完成啦,以后就只要在Firebase发号施令啦~





  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
好的,下面是使用Firebase_Messaging接收推送通知的完整Flutter iOS代码: ```dart import 'package:firebase_core/firebase_core.dart'; import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp(); runApp(MyApp()); } class MyApp extends StatefulWidget { @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State<MyApp> { final FirebaseMessaging _firebaseMessaging = FirebaseMessaging.instance; @override void initState() { super.initState(); _firebaseMessaging.requestPermission(); _firebaseMessaging.configure( onMessage: (Map<String, dynamic> message) async { print("onMessage: $message"); showDialog( context: context, builder: (context) { return AlertDialog( content: ListTile( title: Text(message['notification']['title']), subtitle: Text(message['notification']['body']), ), actions: <Widget>[ FlatButton( child: Text('Ok'), onPressed: () { Navigator.of(context).pop(); }, ), ], ); }, ); }, onResume: (Map<String, dynamic> message) async { print("onResume: $message"); }, onLaunch: (Map<String, dynamic> message) async { print("onLaunch: $message"); }, ); } @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Firebase Messaging', home: Scaffold( appBar: AppBar( title: Text('Flutter Firebase Messaging'), ), body: Center( child: Text('Welcome to Flutter Firebase Messaging'), ), ), ); } } ``` 在这个例子,我们首先使用Firebase.initializeApp()初始化Firebase应用程序,然后创建FirebaseMessaging实例并调用requestPermission()请求权限。接下来,我们使用configure()方法配置FirebaseMessaging以处理不同的消息事件。当应用程序处于前台时,onMessage()方法被调用,我们在这里创建一个AlertDialog来显示推送通知的标题和正文。当应用程序处于后台或未运行时,onResume()和onLaunch()方法被调用,我们可以在这里处理推送通知。 希望这个例子能够帮助你使用Firebase_Messaging接收推送通知。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏小败在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值