万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    firebase_messagingでのonBackgroundMessageでのハマりどころ

    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" />な感じで。

    あとJSONdata で送るべき。 こんなキーバリューがあるだけで怒られる。 nullにするか、そもそもキーを書かない事!

        "notification" : {
            "body" : "テスト Body",
            "sound" : "default"
        }

    基礎から学ぶ Flutter

    基礎から学ぶ Flutter