admin管理员组

文章数量:1566678

Android使用google Firebase Cloud Messaging的云推送发送通知

  • 关于

关于

  首先是Firebase的官网地址,然后我们使用google账号登陆并开始使用:

  新建一个项目,这里我用我之前的测试的项目了,然后在项目里面点击添加应用,并选择对应平台-Android进入如下页面:

  然后输入Android项目的包名,其余别名和sha证书选填,然后点击注册应用,点击下一步,然后我们会下载一个叫google-services.json文件,将它下载后放到moudle的根目录里,我们可以点开这个json文件查看里面clientid是不是我们moudle的applicationid:


  然后我们下一步里面会有提示添加依赖的api,这里我们在工程的build里面添加如下:

dependencies {
        classpath 'com.google.gms:google-services:4.3.13'
        }

  然后修改对应的模块的build引用:

plugins {
    id 'com.google.gms.google-services'
}

implementation 'com.google.firebase:firebase-messaging:23.0.6'
implementation platform('com.google.firebase:firebase-bom:30.3.1')   

  接下来我们可以通过Android studio的firebase连接网页控制台看下配置是否成功,单击 Tools > Firebase. (这会将项目添加到 Firebase),单击 Set up Firebase Cloud Messaging,这里选择第一个即可,选择kotlin版的就是messaging的引用和一些类用法不一样,最终结果一致的:

  单击 Connect to Firebase,会跳出弹框提示我们已经连接到了某个项目,就说明已经配置成功了:

  接下来我们想收到云消息推送,还需要编写一个类继承FirebaseMessagingService

class MyFirebaseInstanceIDService : FirebaseMessagingService() {

    override fun onNewToken(token: String) {
        super.onNewToken(token)
        "token内容$token".printLog() //这个刷新token会在第一次以及一些重置刷新的时候重新返回一个token
    }

    override fun onMessageReceived(message: RemoteMessage) {
        super.onMessageReceived(message)
        "当前接收到的数据${message.data}".printLog()
    }
}

  平时的token获取可以调用:

FirebaseMessaging.getInstance().token.addOnCompleteListener { 
            
        }

  然后我们还需要在androidmanifest.xml里面把service声明一下:

<service
            android:name=".MyFirebaseInstanceIDService"
            android:exported="false">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT" />
            </intent-filter>
        </service>

  好了,现在android接收这一块已经简单配置好了,我们运行一下app(最好是卸载重新安装一下),然后可以在控制台看到token的打印(第一次运行firebase会上传我们的设备信息,这个可以在logcat里面通过regex firebase查看到):

  然后我们打开Firebase的网页控制台,在项目左侧找到cloud messaging,然后点击制作,在弹出框中选择制作通知消息:

  然后我们首先需要输入通知栏标题和内容等,这和一些极光推送等一样用法:

  点击下一步,需要我们定位要发送的app,通过选择对应application id的特定设备:

  然后选择发送的时间,一般都是立即发送。下一步转化事件我们不管,继续下一步,android8.0的通知需要有渠道,我们输入一些测试数据,用于返回观察:
  最后点击审核发布,然后我们可以在网页上看到发布状态:

  我们在Android studio的logcat里面可以看到收到的通知消息数据:

  注意,这个推送消息有时候会有一定时间的延迟。到此,本篇就结束了,有问题欢迎留言

本文标签: 通知GoogleandroidFirebaseMessaging