【问题标题】:Firebase messaging-handle background message in kotlinkotlin 中的 Firebase 消息处理后台消息
【发布时间】:2020-05-15 23:00:34
【问题描述】:

我在我的颤振应用程序中使用firebase_messaging。 为了在 pub 中使用 firebase 消息处理后台消息,他们建议创建新的 Application.java 文件并替换 AndroidManifest 文件中的 java 文件名。

在我的应用程序中,我使用的是 kotlin,并且我已经在 MainActivity.kt 中实现了一些本机代码

那么如何在 kotlin 中编写这段代码。

package io.flutter.plugins.firebasemessagingexample;

import io.flutter.app.FlutterApplication;
import io.flutter.plugin.common.PluginRegistry;
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
import io.flutter.plugins.GeneratedPluginRegistrant;
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService;

public class Application extends FlutterApplication implements PluginRegistrantCallback {
 @Override
public void onCreate() {
 super.onCreate();
 FlutterFirebaseMessagingService.setPluginRegistrant(this);
 }

@Override
public void registerWith(PluginRegistry registry) {
 GeneratedPluginRegistrant.registerWith(registry);
}
}

AndroidManifest文件中的MainActivity必须替换为Application吗?

【问题讨论】:

    标签: android firebase kotlin flutter firebase-cloud-messaging


    【解决方案1】:

    这里是工作后台通知 kotlin 代码:

    package com.example.yourapp
    
    import io.flutter.app.FlutterApplication
    import io.flutter.plugin.common.PluginRegistry
    import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
    import io.flutter.plugins.GeneratedPluginRegistrant
    import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
    
    class Application : FlutterApplication(), PluginRegistrantCallback {
    
        override fun onCreate() {
            super.onCreate()
            FlutterFirebaseMessagingService.setPluginRegistrant(this);
        }
    
        override fun registerWith(registry: PluginRegistry?) {
            io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
        }
    }
    

    【讨论】:

    • 你也可以这样:FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"))
    • 我们必须在 MainActivity.kt 中添加这个还是创建一个单独的文件?
    • 创建一个名为 Application.kt 的单独文件,然后在应用程序部分使用 android:name=".Application" 进入您的 AndroidManifest 文件
    【解决方案2】:

    这是新的 firebase 云消息传递版本的 Kotlin 代码:

    package id.your.app
        
    import io.flutter.app.FlutterApplication
    import io.flutter.plugin.common.PluginRegistry
    import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
    import io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingBackgroundService
    // import io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingPlugin
    
    class Application : FlutterApplication(), PluginRegistrantCallback {
      override fun onCreate() {
        super.onCreate()
        FlutterFirebaseMessagingBackgroundService.setPluginRegistrant(this)
      }
    
      override fun registerWith(registry: PluginRegistry?) {
        // FlutterFirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebase.messaging.FlutterFirebaseMessagingPlugin"))
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-07-09
      • 1970-01-01
      • 2020-05-15
      • 1970-01-01
      • 2021-10-07
      • 2020-04-05
      • 2021-12-02
      • 2019-12-12
      • 2015-12-16
      相关资源
      最近更新 更多