当前位置: 首页 > news >正文

创建一个网站的英文泰州网站设计咨询

创建一个网站的英文,泰州网站设计咨询,外贸网络营销如何做,幼教机构网站开发设计论文Firebase Cloud Messaging (FCM) 是 Google 提供的跨平台消息推送解决方案。以下是在 Android Kotlin 项目中集成 FCM 的详细步骤。 一、前期准备 1. 创建 Firebase 项目 访问 Firebase 控制台点击添加项目#xff0c;按照向导创建新项目项目创建完成后#x…Firebase Cloud Messaging (FCM) 是 Google 提供的跨平台消息推送解决方案。以下是在 Android Kotlin 项目中集成 FCM 的详细步骤。 一、前期准备 1. 创建 Firebase 项目 访问 Firebase 控制台点击添加项目按照向导创建新项目项目创建完成后点击添加应用选择 Android 应用 2. 获取配置文件 输入应用的包名必须与 build.gradle 中的 applicationId 一致下载 google-services.json 文件将该文件放到项目的 app 模块根目录下 二、项目配置 1. 项目级 build.gradle // 在项目级的 build.gradle 文件中添加 buildscript {dependencies {// 添加 Google Services 插件classpath com.google.gms:google-services:4.3.15} }2. 应用级 build.gradle // 在应用级的 build.gradle 文件顶部添加 plugins {id com.android.applicationid kotlin-androidid com.google.gms.google-services // 添加这行 }dependencies {// FCM 核心库implementation com.google.firebase:firebase-messaging:23.2.1// 可选 - Kotlin 协程支持implementation org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.4implementation org.jetbrains.kotlinx:kotlinx-coroutines-play-services:1.6.4// 可选 - 用于处理后台消息implementation androidx.work:work-runtime-ktx:2.8.1 }三、实现 FCM 服务 1. 创建自定义 FirebaseMessagingService import android.util.Log import com.google.firebase.messaging.FirebaseMessagingService import com.google.firebase.messaging.RemoteMessageclass MyFirebaseMessagingService : FirebaseMessagingService() {private val TAG FCM_Service/*** 当收到新消息时调用*/override fun onMessageReceived(remoteMessage: RemoteMessage) {Log.d(TAG, From: ${remoteMessage.from})// 检查消息是否包含数据负载if (remoteMessage.data.isNotEmpty()) {Log.d(TAG, Message data payload: ${remoteMessage.data})// 在这里处理数据消息handleDataMessage(remoteMessage.data)}// 检查消息是否包含通知负载remoteMessage.notification?.let {Log.d(TAG, Message Notification Body: ${it.body})// 在这里处理通知消息handleNotification(it)}}/*** 当新令牌生成时调用*/override fun onNewToken(token: String) {Log.d(TAG, Refreshed token: $token)// 将新令牌发送到你的应用服务器sendRegistrationToServer(token)}private fun handleDataMessage(data: MapString, String) {// 实现你的数据消息处理逻辑// 例如更新UI、显示通知等}private fun handleNotification(notification: RemoteMessage.Notification) {// 实现你的通知处理逻辑// 例如显示系统通知}private fun sendRegistrationToServer(token: String) {// 实现将令牌发送到你的应用服务器的逻辑} }2. 在 AndroidManifest.xml 中注册服务 serviceandroid:name.MyFirebaseMessagingServiceandroid:exportedfalseintent-filteraction android:namecom.google.firebase.MESSAGING_EVENT //intent-filter /service四、获取设备令牌 1. 创建 FCM 管理器类 import android.util.Log import com.google.firebase.messaging.FirebaseMessaging import kotlinx.coroutines.tasks.awaitobject FCMManager {private const val TAG FCM_Manager/*** 获取当前 FCM 令牌*/suspend fun getToken(): String? {return try {FirebaseMessaging.getInstance().token.await().also { token -Log.d(TAG, FCM Token: $token)}} catch (e: Exception) {Log.e(TAG, Failed to get FCM token, e)null}}/*** 订阅主题*/fun subscribeToTopic(topic: String) {FirebaseMessaging.getInstance().subscribeToTopic(topic).addOnCompleteListener { task -if (task.isSuccessful) {Log.d(TAG, Subscribed to $topic)} else {Log.e(TAG, Subscribe to $topic failed, task.exception)}}}/*** 取消订阅主题*/fun unsubscribeFromTopic(topic: String) {FirebaseMessaging.getInstance().unsubscribeFromTopic(topic).addOnCompleteListener { task -if (task.isSuccessful) {Log.d(TAG, Unsubscribed from $topic)} else {Log.e(TAG, Unsubscribe from $topic failed, task.exception)}}} }2. 在应用启动时获取令牌 class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)// 获取 FCM 令牌lifecycleScope.launch {val token FCMManager.getToken()// 可以将 token 发送到你的服务器}// 订阅主题示例FCMManager.subscribeToTopic(news)} }五、处理通知点击 1. 创建通知点击处理 Activity class NotificationHandlerActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_notification_handler)// 处理从通知传递过来的数据intent.extras?.let { extras -// 解析 extras 中的数据并处理val message extras.getString(key)// 根据消息内容跳转到相应页面}// 关闭 Activity如果是仅用于处理点击finish()} }2. 在 AndroidManifest.xml 中配置 activityandroid:name.NotificationHandlerActivityandroid:exportedtrueandroid:themestyle/Theme.AppCompat.Translucentintent-filteraction android:nameandroid.intent.action.VIEW /category android:nameandroid.intent.category.DEFAULT //intent-filter /activity六、测试 FCM 功能 1. 使用 Firebase 控制台测试 在 Firebase 控制台中选择你的项目进入 Cloud Messaging 部分点击发送第一条消息填写通知标题、内容等选择目标设备或主题发送测试消息 2. 使用 cURL 命令测试 curl -X POST \https://fcm.googleapis.com/fcm/send \-H Authorization: keyYOUR_SERVER_KEY \-H Content-Type: application/json \-d {to: DEVICE_TOKEN,notification: {title: 测试通知,body: 这是一条测试消息,click_action: .NotificationHandlerActivity},data: {key1: value1,key2: value2}}七、常见问题解决 收不到通知 检查设备是否联网确认 google-services.json 配置正确检查应用是否被强制停止 令牌获取失败 确保 Google Play 服务可用检查设备是否支持 GMS 后台消息不触发 确认服务已在 Manifest 中正确声明检查 Android 版本是否限制了后台服务 通知图标不显示 确保有默认通知图标在 Manifest 中添加元数据meta-dataandroid:namecom.google.firebase.messaging.default_notification_iconandroid:resourcedrawable/ic_notification /八、最佳实践 令牌管理 每次应用启动时检查令牌在 onNewToken 中及时更新服务器上的令牌 消息处理 区分数据消息和通知消息对于重要消息考虑添加 WorkManager 任务确保处理 用户体验 为通知设置合适的渠道提供清晰的点击行为 安全性 使用 HTTPS 传输令牌在服务器端验证消息来源 通过以上步骤你的 Android Kotlin 应用已经成功集成了 FCM 推送通知功能。你可以根据需要进一步扩展功能如实现富媒体通知、分组通知等高级特性。
http://www.pierceye.com/news/466082/

相关文章:

  • 我想找阿里巴巴做网站推广建一个公司网站花多少钱
  • 最新购物网站建设框架wordpress 登录后台乱码
  • 音频网站开发做外贸网站需要营业执照
  • 企业网站搭建项目概述范文wordpress更改链接地址
  • 免费网站在线观看人数在哪直播建设工业网站首页
  • 权威的南昌网站设计wordpress游客评论游客
  • 乡镇府建设网站什么是外链
  • 营销型网站设计流程电子商务网站建设软件
  • 做个人网站的步骤wordpress 添加新页面
  • 公司建网站流程网站布局选择
  • 云南效果好的网站优化微信如何做有趣的短视频网站
  • wordpress个人网站后台登陆dedecms仿站
  • 网站没被收录什么原因上海哪家做网站
  • 电子商务网站建设含代码项目外包是什么意思
  • 此网站正在建设中页面重庆网上商城网站建设公司
  • 保定建设公司网站新产品上市的营销策划方案
  • 网站建设课程报告论文网络设计专业有前途吗
  • 苏州哪个公司做门户网站wordpress显示评论者地理位置 浏览器
  • 福州网站设计十年乐云seo推广网上国网有什么好处
  • 豪华网站建设wordpress推广提成
  • 网站优化外包价格搜索引擎费用
  • 网站建设基本范例sqlite开发网站
  • 网站建设顾问站建开发外包公司
  • 建立网站花钱吗wordpress表结构写入不全
  • 绿色家园网站怎么做导出wordpress文章
  • 合肥有什么好的网站建设公司网站建设的售后服务流程
  • 做网站烧钱吗济南免费建站
  • ps个人主页网页设计模板汕头关键词优化服务
  • 网站建设功能图网站开发新技术探索
  • 做自行车网站应该注意什么个人介绍网页设计模板