https://pub.dev/packages/firebase_messaging
firebase_messaging
にてonBackgroundMessage
を使うときは、
TOP-LEVEL か STATIC の関数しか使えない。
○呼べる関数について
TOP-LEVELとはクラスから出てるような関数。STATICはその名の通りstatic
ついてるやつ。
○Application.java or Application.kt作る
<app-name>/android/app/src/main/java/<app-organization-path>/
のMainActivity.java
を参考にしつつ以下のようなJavaファイルを作る
Application.java
の名前でね
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); } }
package io.flutter.plugins.firebasemessagingexample
は適宜変えること。
※Kotlinのとき もし、Kotlinでプロジェクト作ってるのなら、
<app-name>/android/app/src/main/kotlin/<app-organization-path>/
のMainActivity.kt
を参考にしつつ以下のようなKotlinファイルを作る
Application.kt
の名前でね
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.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")); } }
○AndroidManifest編集
<app-name>/android/app/src/main/AndroidManifest.xml
ファイルもいじる必要がある。
<application android:name=".Application" />
な感じで。
あとJSONにdata
で送るべき。
こんなキーバリューがあるだけで怒られる。
nullにするか、そもそもキーを書かない事!
"notification" : { "body" : "テスト Body", "sound" : "default" }