Cordova-plugin-firebase: (рдПрдВрдбреНрд░реЙрдЗрдб) рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд░ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХреЙрд▓рдмреИрдХ рдЦреЛрд▓реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рд╕рд┐рддре░ 2016  ┬╖  28рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: arnesson/cordova-plugin-firebase

рдХреЙрд░реНрдбреЛрд╡рд╛ 6.3.1
рдлреЛрдирдЧреИрдк рдлрд╛рдпрд░рдмреЗрд╕ рдкреНрд▓рдЧрдЗрди 0.1.12
рдбрд┐рд╡рд╛рдЗрд╕: Android 6.0.1 . рдХреЗ рд╕рд╛рде LG G5

рдпрд╣ рд╡рд╣ рдХреЛрдб рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ:
`рд╡рд░ рдРрдк = {
// рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░
рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ: рдлрд╝рдВрдХреНрд╢рди () {
this.bindEvents ();
},
// рдмрд╛рдЗрдВрдб рдЗрд╡реЗрдВрдЯ рд╢реНрд░реЛрддрд╛рдУрдВ
//
// рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдкрд░ рдЖрд╡рд╢реНрдпрдХ рдХрд┐рд╕реА рднреА рдШрдЯрдирд╛ рдХреЛ рдмрд╛рдВрдзреЗрдВред рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛рдПрдВ рд╣реИрдВ:
// 'рд▓реЛрдб', 'рдбрд┐рд╡рд╛рдЗрд╕рд░реЗрдбреА', 'рдСрдлрд╝рд▓рд╛рдЗрди' рдФрд░ 'рдСрдирд▓рд╛рдЗрди'ред
рдмрд╛рдЗрдВрдбрдЗрд╡реЗрдВрдЯреНрд╕: рдлрдВрдХреНрд╢рди () {
document.addEventListener('deviceready', this.onDeviceReady, false);
},
// рдбрд┐рд╡рд╛рдЗрд╕рд░реЗрдбреА рдЗрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░
//
// 'рдЗрд╕' рдХрд╛ рджрд╛рдпрд░рд╛ рдШрдЯрдирд╛ рд╣реИред 'рдкреНрд░рд╛рдкреНрддрдЗрд╡реЗрдВрдЯ' рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
// рдлрд╝рдВрдХреНрд╢рди, рд╣рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ 'app.receivedEvent(...);' рдХреЙрд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдСрдирдбрд┐рд╡рд╛рдЗрд╕рд░реЗрдбреА: рдлрд╝рдВрдХреНрд╢рди () {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ ("рдПрд╕реНрдЯрд╛рдореЛрд╕ рдПрди рдСрдирдбрд┐рд╡рд╛рдЗрд╕рд░реЗрдбреА");
рдЕрдЧрд░ (рдиреЗрд╡рд┐рдЧреЗрдЯрд░.рдХрдиреЗрдХреНрд╢рди.рдЯрд╛рдЗрдк == рдХрдиреЗрдХреНрд╢рдиред рдХреЛрдИ рдирд╣реАрдВ) {
рдиреЗрд╡рд┐рдЧреЗрдЯрд░.рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди.рдЕрд▓рд░реНрдЯ ('рдЗрдВрдЯрд░рдиреЗрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ');
} рдЕрдиреНрдпрдерд╛ {
window.FirebasePlugin.onNotificationOpen (рдлрд╝рдВрдХреНрд╢рди (рдЕрдзрд┐рд╕реВрдЪрдирд╛) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рдЕрдзрд┐рд╕реВрдЪрдирд╛);
рдиреЗрд╡рд┐рдЧреЗрдЯрд░.рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди.рдЕрд▓рд░реНрдЯ ("рд░реЗрд╕рд┐рдмрд┐рдбреЛ");
}, рдлрд╝рдВрдХреНрд╢рди (рддреНрд░реБрдЯрд┐) {
рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ (рддреНрд░реБрдЯрд┐);
});
}
},

};
app.initialize (); `

рдореБрдЭреЗ рд╕рднреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЯреНрд░реЗ рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВ: рдкреГрд╖реНрдарднреВрдорд┐, рдЕрдЧреНрд░рднреВрдорд┐ рдФрд░ рдмрдВрдж рдореЗрдВ рдРрдк рдФрд░ рдЬрдм рдореИрдВ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рддреАрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдРрдк рдЦреБрд▓рд╛ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЙрд▓рдмреИрдХ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ?

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдореИрдВрдиреЗ рдкреВрд░реЗ onNotificationOpen рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╣реИ:

  • рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдЖрддреА рд╣реИ, рдЦреБрд▓реА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдФрд░ onNotificationOpen рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ (рдмрд┐рдирд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЖрддреА рд╣реИ, рдЦреБрд▓реА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ onNotificationOpen рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмрд┐рдирд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП)

рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реИ, рдпрджрд┐ рд╡рд╣ рд╕рдВрднрд╡ рд╣реЛ (рдЕрднреА рддрдХ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рддреЛ рд╕реВрдЪрдирд╛ рдХреЛ рдЦреЛрд▓реЗ рдмрд┐рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рддреБрд░рдВрдд рдбрд┐рд▓реАрд╡рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред

рдореИрдВ рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдиреЛрдм рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред

OnNotificationOpe nReceiver:onReceive рдЕрдм рдмрд╕ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ

FirebasePlugin.onBroadcastReceive(context, intent);

FirebasePlugin рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрджрд▓рд╛ рдЧрдпрд╛

  • рдХреЙрд▓рдмреИрдХ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рд╕реЗ рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн рд╣рдЯрд╛рдПрдВ
  • onBroadcastReceive рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ, рдЖрд╢рдп рдбреЗрдЯрд╛ рдХреЛ onNotificationOpen рдкрд░ рдкрд╛рд╕ рдХрд░реЗрдВ
  • onNewIntent рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ, рдЖрд╢рдп рдбреЗрдЯрд╛ рдХреЛ onNotificationOpen рдкрд░ рдкрд╛рд╕ рдХрд░реЗрдВ
  • onNotification рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрджрд▓ рджрд┐рдпрд╛

    • рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн рд░реЗрдЦрд╛ рд╣рдЯрд╛ рджреА рдЧрдИ

    • рдкрд╣рд▓реА рдХреЙрд▓ рдХреЗ рдмрд╛рдж рдХреЙрд▓рдмреИрдХ рдХреЛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рд░рд┐рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдмрджрд▓реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкрд░ setKeepCallback(true) рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ

    private static CallbackContext callbackContext;
    // ...
    private void registerOnNotificationOpen(final CallbackContext callbackContext) {
        FirebasePlugin.callbackContext = callbackContext;
    }

    // called when in foreground
    public static void onBroadcastReceive(Context context, Intent intent) {
        Log.d("FirebasePlugin", "onBroadcastReceive");
        Bundle data = intent.getExtras();
        FirebasePlugin.onNotificationOpen(data);
    }

    // called when in background
    <strong i="32">@Override</strong>
    public void onNewIntent(Intent intent) {
        Log.d(TAG, "new intent " + intent);
        super.onNewIntent(intent);
        FirebasePlugin.onNotificationOpen(intent.getExtras());
    }

    public static void onNotificationOpen(Bundle bundle) {
        if (FirebasePlugin.callbackContext == null ) {
            Log.d("FirebasePlugin", "no callback context, onNotificationOpen ignored");
            return;
        }
        if (callbackContext != null && bundle != null) {
            JSONObject json = new JSONObject();
            Set<String> keys = bundle.keySet();
            for (String key : keys) {
                try {
                    json.put(key, bundle.get(key));
                } catch (JSONException e) {
                    Log.d("FirebasePlugin", "onNotificationOpen: json exception");
                    PluginResult result = new PluginResult(PluginResult.Status.JSON_EXCEPTION, e.getMessage());
                    result.setKeepCallback(true);
                    callbackContext.sendPluginResult(result);
                    return;
                }
            }
            Log.d("FirebasePlugin", "onNotificationOpen: send notification to javascript");
            PluginResult result = new PluginResult(PluginResult.Status.OK, json);
            result.setKeepCallback(true);
            callbackContext.sendPluginResult(result);
        }
    }

рд╕рднреА 28 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, рдПрдВрдбреНрд░реЙрдЗрдб рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдкрд░ рдЖрддреА рд╣реИ рд▓реЗрдХрд┐рди рдРрдк рдХреЗ рдЕрдВрджрд░ рдХреЛрдИ рдХреЙрд▓рдмреИрдХ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡реА. 0.1.12

@voidbrain @ рдХрд┐рдмреБрдХрд┐рддрд╛ рдХреГрдкрдпрд╛, рд░реЗрдкреЛ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВред рдореИрдВрдиреЗ рдЦреБрд▓реА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдзрдиреНрдпрд╡рд╛рджред

@BugsBunnyBR рдореИрдВрдиреЗ рдЕрднреА рд░реЗрдкреЛ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдФрд░ рдЕрднреА рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред Android рдкрд░ рдпрд╣ рдЕрднреА рднреА onNotificationOpen рдХреЛ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

@superheroben , рдХреНрдпрд╛ рдЖрдк рдкреНрд▓рдЧрдЗрди рдХреЛрдб рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдирдореВрдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд░реЗрдкреЛ рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЖрдк рд╕реВрдЪрдирд╛рдПрдВ рдХреИрд╕реЗ рднреЗрдЬ рд░рд╣реЗ рд╣реИрдВ? рдореИрдВрдиреЗ рд╡рд┐рд╖рдп рд╕рдВрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ред

рдпрд╣рд╛рдВ рднреА рдпрд╣реА рд╕рдорд╕реНрдпрд╛ред
getInstanceId() рдХреЙрд▓рдмреИрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЖрддреА рд╣реИ, рд▓реЗрдХрд┐рди onNotificationOpen() рдХрднреА рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб:

if (window.FirebasePlugin)
{
  window.FirebasePlugin.getInstanceId(
    function(token) {
        thiss.saveToken(token);
    }, 
    function(error) {
        console.log(error);
    }
  );

  window.FirebasePlugin.onNotificationOpen(
    function(notification) {                  
      alert("Yeah!!!");                  
    }, 
    function(error) {
      alert("Error!");
      console.error(error);
    }
  );

  window.FirebasePlugin.grantPermission();
}

рдореЗрд░реА рд╕реВрдЪрдирд╛ рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛:

(
    [to] => (device token)
    [notification] => Array
        (
            [title] => Title
            [text] => Test message
            [sound] => default
            [vibrate] => 1
            [badge] => 2
        )
)

рдореЗрд░рд╛ рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреЛрдб (PHP):

$jsonData = json_encode($data);

$ch     = curl_init("https://fcm.googleapis.com/fcm/send");
$header = array(
    'Content-Type: application/json',
    "Authorization: key=".MY_GCM_API_KEY
);

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, true);
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );

curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);

$result = curl_exec($ch);
curl_close($ch);

рдХреЙрд░реНрдбреЛрд╡рд╛ рдПрдВрдбреНрд░реЙрдЗрдб 5.2.2 рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдПрдВрдбреНрд░реЙрдЗрдб 4.4.2 рдЪрд▓рд╛рддрд╛ рд╣реИред рдкреНрд▓рдЧрдЗрди рд╕рдВрд╕реНрдХрд░рдг 0.1.12.

@arivanbastos , рдХреНрдпрд╛ рдЖрдкрдиреЗ

рдЬреАрдердм рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЧрдИред рд╢реБрдХреНрд░рд┐рдпрд╛ред

cordova plugin remove cordova-plugin-firebase
cordova plugin add https://github.com/arnesson/cordova-plugin-firebase/

рдРрдк рдХреЗ рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рдЕрдм onNotificationOpen() рдХреЙрд▓рдмреИрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЬрдм рдРрдк рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рдмрдЬрд╛рдп, рд╕реВрдЪрдирд╛ рдЖрддреА рд╣реИ рдФрд░ onNotificationOpen() рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдРрдк рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╣реИ:
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реВрдЪрдирд╛ рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╕реВрдЪрдирд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рдкреБрд╢ рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдпрд╣ рдЖрдк рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИ, рдбреЗрд╡рд▓рдкрд░, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛)

рдпрджрд┐ рдЖрдк "рд╕реВрдЪрдирд╛" рдкреНрд░рдХрд╛рд░ (рдбреЗрдЯрд╛ рдмреЙрдбреА рдХреЗ рдмрд┐рдирд╛) рдХрд╛ рдкреБрд╢ рднреЗрдЬрддреЗ рд╣реИрдВ рддреЛ рдРрдк рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ред рдХреНрдпрд╛ рдореБрдЭреЗ рдЕрдкрдиреЗ рд╕реВрдЪрдирд╛ рдбреЗрдЯрд╛ рдореЗрдВ рдХреЗрд╡рд▓ "рдбреЗрдЯрд╛" рдЕрдиреБрднрд╛рдЧ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП?

(
    [to] => (device token)
    [notification] => Array
        (
            [title] => Title
            [text] => Test message
        )
    [data] => Array
        (
            [test] => 1
        )
)

рдЗрд╕рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рдирд╣реАрдВ рд╣реБрдИред

"рдбреЗрдЯрд╛" рджреНрд╡рд╛рд░рд╛ "рд╕реВрдЪрдирд╛" рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рд╕реЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЖрдиреЗ рдкрд░ рдРрдк рдХреНрд░реИрд╢ ("рдРрдк рдмрдВрдж рд╣реЛ рдЧрдпрд╛") рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

(
    [to] => (device token)
    [data] => Array
        (
            [title] => Title
            [text] => Test message
        )
)

https://firebase.google.com/docs/cloud-messaging/android/receive
рдпрд╣рд╛рдБ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдпрджрд┐ рдРрдк рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд╣реИ рдФрд░ рдРрдк рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╣реИ рддреЛ рдЖрдкрдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕рд┐рд╕реНрдЯрдо-рдЯреНрд░реЗ рдореЗрдВ рдЬрд╛рддреА рд╣реИ рдФрд░ рдСрдирдореИрд╕реЗрдЬ рдкреНрд░рд╛рдкреНрдд() рдкрд░ рдЬрд╛рддреА рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЗ рд╕рдВрджреЗрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИ рддреЛ рдпрд╣ рд╣рдореЗрд╢рд╛ onMessageReceived() рдХреЛ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ onMessageReceived() рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИред
рдЬрдм рдореИрдВ рдЙрд╕ рдХреЛрдб рдХреЛ рджреЗрдЦрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдХреА рдореИрдВ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░рддрд╛ рд╣реВрдВ рд╡рд╣ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  • рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓реЗрдВ
  • рдЕрдзрд┐рд╕реВрдЪрдирд╛рдмрд┐рд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдмрдирд╛рдирд╛
  • рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░реЗрдВ

рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рдмрдВрдзрдХред рдЕрдзрд┐рд╕реВрдЪрдирд╛ (рдЖрдИрдбреА, рдЕрдзрд┐рд╕реВрдЪрдирд╛) рд╕реНрдЯреЗрдЯрд╕ рдмрд╛рд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреЛрд╕реНрдЯ рдХрд░рддреА рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░реЗ рд▓рд┐рдП рдпрд╣ рдЕрдкреЗрдХреНрд╖рд┐рдд рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╣рд░ рдмрд╛рд░ рдЬрдм рдореБрдЭреЗ FCM рд╕реЗ рдХреЛрдИ рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рдЙрд╕реЗ рд╕реНрдЯреЗрдЯрд╕ рдмрд╛рд░ рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдИ рдЬрд╛рдПрдЧреАред
рдЕрдЧрд░ рдРрдк рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╣реИ рдФрд░ рдореБрдЭреЗ рдХреЙрд▓рдмреИрдХ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдХреЙрд▓ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣реА рд╣реИ рддреЛ рдореБрдЭреЗ рдХреЛрдИ рдЪреЗрдХ рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдХреЛрдИ рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░ рдирд╣реАрдВ рд╣реВрдВ рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рд▓реЗрдХрд┐рди рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдЙрд╕ рдкрд░ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред

рдареАрдХ рд╣реИ, рдореБрдЭреЗ рдХреЛрдб рдХрд╛ рдЯреБрдХрдбрд╝рд╛ рдорд┐рд▓рд╛ рдЬреЛ рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
BugsBunnyBR рд╕реЗ рдЕрдВрддрд┐рдо рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХреЗ рд╕рд╛рде OnNotificationOpenReceiver рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдЖ рдерд╛ рдЬреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ arivanbastos рдХреЛ github рд░реЗрдкреЛ рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП рдЕрдкрдирд╛ рдХреЙрд▓рдмреИрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдпрджрд┐ рдХреЛрдИ рдкрд╛рда рдпрд╛ рд╢реАрд░реНрд╖рдХ (рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдпрд╛ рдбреЗрдЯрд╛ рдореЗрдВ) рд╣реИ, рддреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗрд╡рд▓ (OnNotificationOpenReceiver рдФрд░ NotificationManager рдХреЛ) рднреЗрдЬреА рдЬрд╛рддреА рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рднреЗрдЬреЗ рдмрд┐рдирд╛ рдЖрдкрдХреЗ рдРрдк рдкрд░ рдбреЗрдЯрд╛ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд╕реНрдЯреЗрдЯрд╕рдмрд╛рд░ рдореЗрдВ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

@arivanbastos
рдореИрдВрдиреЗ рддреБрдорд╕реЗ рдХреБрдЫ рдЧрд▓рдд рдХрд╣рд╛ред рдЙрд╕рдХреЗ рд▓рд┐рдП рдорд╛рдлрд╝ рдХрд░рдирд╛ред
рдХреНрдпрд╛ рдЖрдкрдиреЗ рдЗрд╕ рд░реЗрдкреЛ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ?

@packowitz рдФрд░ @robertarnesson ред рдареАрдХ рд╣реИ, рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣рдореЗрд╢рд╛ * рдЕрдзрд┐рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдпрд╛ рдлрд╛рдпрд░рдмреЗрд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдпрд╛ onMessageReceived рдЕрдВрджрд░ рдПрдХ рдмрд┐рд▓реНрдб рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
onNotificationOpen рдХреЙрд▓рдмреИрдХ рддрдм рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрдм onMessageReceived рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЬрдм рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдбреЗрдЯрд╛ рдФрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдирд┐рдХрд╛рдп рд╣реЛрддреЗ рд╣реИрдВред рдореЗрд░реЗ рдЬрдирд╕рдВрдкрд░реНрдХ рдореЗрдВ рдЬрд┐рд╕рдиреЗ onNotificationOpen рдХреА рд╢реБрд░реБрдЖрдд рдХреА, рдореИрдВрдиреЗ рдпрд╣ рд╕рдордЭрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдХрд┐ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рдХрд╛рд░ рдХреА рдкреБрд╢ рд╕реВрдЪрдирд╛рдПрдВ рдХреЙрд▓рдмреИрдХ рдХреЛ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд░реЗрдВрдЧреАред рдЕрдиреБрд╢рдВрд╕рд╛ рд╣рдореЗрд╢рд╛ рдПрдХ рдбреЗрдЯрд╛ рдмреЙрдбреА рдФрд░ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдмреЙрдбреА рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рд╣реИ, рддрд╛рдХрд┐ рдкреНрд▓рдЧрдЗрди рдХреЙрд▓рдмреИрдХ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХреЗ рдФрд░ рдЖрдЧ рд▓рдЧрд╛ рд╕рдХреЗред

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐, рд╣рдореЗрд╢рд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдирд╛ рдорд╛рдирдХ рдлрд╛рдпрд░рдмреЗрд╕ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рд╣реИред

рдЕрдзрд┐рдХрд╛рдВрд╢ Android рдРрдк рдбреЗрд╡рд▓рдкрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдирдХрд╛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди sys-рдЯреНрд░реЗ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдП, рднрд▓реЗ рд╣реА рдРрдк рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╣реЛред рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЪреИрдЯ рдРрдкреНрд╕ рдореЗрдВ, рдХрд┐ рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЕрдЪреНрдЫреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИред
рдЬрдм рдореИрдВрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╕реБрд╡рд┐рдзрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА рддреЛ рдореБрдЭреЗ рдЪреИрдЯ рдРрдкреНрд╕ рдХреА рдЬрд╝рд░реВрд░рддреЛрдВ рдпрд╛ рдлрд╝рд╛рдпрд░рдмреЗрд╕ рдХрд╛ рдЕрдиреБрдкрд╛рд▓рди рдХрд░рдиреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдереАред

рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
1) рдРрдк рдХреЗ рдЦреБрд▓реЗ рд╣реЛрдиреЗ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдзреНрд╡рдЬ рд╡рд┐рдХрд╕рд┐рдд рдХрд░реЗрдВ "рдЕрд░реЗ, рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдк рдРрдк рдХреЗ рдЦреБрд▓реЗ рд╣реЛрдиреЗ рдкрд░ рднреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдПрдВ" рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВред рдпрджрд┐ рдРрдк рд╣рдореЗрд╢рд╛ рдЦреЛрд▓рддреЗ рд╕рдордп рдзреНрд╡рдЬ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред

2) рдмрд╕ рдЗрд╕ рд▓рд╛рдЗрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реЗрдВ рдФрд░ рдРрдк рдХреЗ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░реЗрдВред

_Always_ -> рдЕрдЧрд░ рдкреНрд▓рдЧрдЗрди рдХреЛ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдмреЙрдбреА рдореЗрдВ "рдЯреЗрдХреНрд╕реНрдЯ" рдпрд╛ "рдЯрд╛рдЗрдЯрд▓" рдорд┐рд▓рддрд╛ рд╣реИред

@BugsBunnyBR рдореБрдЭреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдзреНрд╡рдЬ рд░рдЦрдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдкрд╕рдВрдж рд╣реИред
рдореИрдВ рдЖрдкрдХреЗ рдЬреЗрдПрд╕-рдХреЙрд▓рдмреИрдХ рдХреЛ рд╡рд╛рдкрд╕ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ OnNotificationOpenReceiver рд╕реЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рдмрдВрдзрдХ рдХреЛ рд╣рдЯрд╛ рджреВрдВрдЧрд╛ред рдореЗрд░реА рд╕рд┐рдлрд╛рд░рд┐рд╢ рд╣реИ рдХрд┐ рдпрджрд┐ рд╕рдВрджреЗрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рд╣реИ рддреЛ рдЪреЗрдХ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред
рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЭрдВрдбрд╛ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд░рд╣реЗрдЧрд╛ред
рд╢реБрдХреНрд░рд┐рдпрд╛ред

@BugsBunnyBR рдореИрдВрдиреЗ рдЕрднреА
рд▓реЗрдХрд┐рди рдХреЙрд▓рдмреИрдХ рдЕрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ;)

рдпрд╣рд╛рдВ рд╡рд╣реА рд╣реИ, рдореЗрд░реЗ рд▓рд┐рдП рд╕рдВрд╕реНрдХрд░рдг 0.1.13 рдореЗрд░реЗ рдРрдк рдХреЛ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд╣реЛрдиреЗ рдкрд░ рд╣реА рдкреБрдирд░рд╛рд░рдВрдн рдХрд░ рд░рд╣рд╛ рд╣реИред рд╕рдВрд╕реНрдХрд░рдг 0.1.12 рдареАрдХ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред

рд░реЗрдкреЛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рд╕рдордЭрджрд╛рд░реА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИрдВред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЦреЛрд▓реЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ onNotificationOpen рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

https://github.com/arnesson/cordova-plugin-firebase/blob/master/src/android/FirebasePlugin.java#L123

registerOnNotificationOpen рдпрд╣ рдХреЗрд╡рд▓ рдХреЙрд▓рдмреИрдХ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ notificationBundle рдкреНрд░рддреАрдХреНрд╖рд╛рд░рдд рд╣реИ

рд╕рд╛рде рд╣реА, рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдЦреБрд▓рд╛ рд╣реИ рддреЛ рдРрдк рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рд░рдг OnNotificationOpenReceiver рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╣рддрд╛ рд╣реИ

launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

https://github.com/arnesson/cordova-plugin-firebase/blob/master/src/android/OnNotificationOpenReceiver.java#L17

рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ notificationBundle рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИ рдЬрдм onNotificationOpen рдХреЙрд▓рдмреИрдХ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИред

рдореИрдВрдиреЗ рдкреВрд░реЗ onNotificationOpen рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╣реИ:

  • рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдЖрддреА рд╣реИ, рдЦреБрд▓реА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдФрд░ onNotificationOpen рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ (рдмрд┐рдирд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ
  • рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЖрддреА рд╣реИ, рдЦреБрд▓реА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ onNotificationOpen рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмрд┐рдирд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП)

рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реИ, рдпрджрд┐ рд╡рд╣ рд╕рдВрднрд╡ рд╣реЛ (рдЕрднреА рддрдХ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рддреЛ рд╕реВрдЪрдирд╛ рдХреЛ рдЦреЛрд▓реЗ рдмрд┐рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рддреБрд░рдВрдд рдбрд┐рд▓реАрд╡рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред

рдореИрдВ рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдиреЛрдм рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред

OnNotificationOpe nReceiver:onReceive рдЕрдм рдмрд╕ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ

FirebasePlugin.onBroadcastReceive(context, intent);

FirebasePlugin рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрджрд▓рд╛ рдЧрдпрд╛

  • рдХреЙрд▓рдмреИрдХ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рд╕реЗ рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн рд╣рдЯрд╛рдПрдВ
  • onBroadcastReceive рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ, рдЖрд╢рдп рдбреЗрдЯрд╛ рдХреЛ onNotificationOpen рдкрд░ рдкрд╛рд╕ рдХрд░реЗрдВ
  • onNewIntent рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ, рдЖрд╢рдп рдбреЗрдЯрд╛ рдХреЛ onNotificationOpen рдкрд░ рдкрд╛рд╕ рдХрд░реЗрдВ
  • onNotification рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЦреЛрд▓реЗрдВ рдФрд░ рдЗрд╕реЗ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдмрджрд▓ рджрд┐рдпрд╛

    • рдХрдордЬреЛрд░ рд╕рдВрджрд░реНрдн рд░реЗрдЦрд╛ рд╣рдЯрд╛ рджреА рдЧрдИ

    • рдкрд╣рд▓реА рдХреЙрд▓ рдХреЗ рдмрд╛рдж рдХреЙрд▓рдмреИрдХ рдХреЛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рд░рд┐рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрд▓рдмреИрдХ рдмрджрд▓реЗрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдкрд░ setKeepCallback(true) рдкрд░ рдХреЙрд▓ рдХрд░реЗрдВ

    private static CallbackContext callbackContext;
    // ...
    private void registerOnNotificationOpen(final CallbackContext callbackContext) {
        FirebasePlugin.callbackContext = callbackContext;
    }

    // called when in foreground
    public static void onBroadcastReceive(Context context, Intent intent) {
        Log.d("FirebasePlugin", "onBroadcastReceive");
        Bundle data = intent.getExtras();
        FirebasePlugin.onNotificationOpen(data);
    }

    // called when in background
    <strong i="32">@Override</strong>
    public void onNewIntent(Intent intent) {
        Log.d(TAG, "new intent " + intent);
        super.onNewIntent(intent);
        FirebasePlugin.onNotificationOpen(intent.getExtras());
    }

    public static void onNotificationOpen(Bundle bundle) {
        if (FirebasePlugin.callbackContext == null ) {
            Log.d("FirebasePlugin", "no callback context, onNotificationOpen ignored");
            return;
        }
        if (callbackContext != null && bundle != null) {
            JSONObject json = new JSONObject();
            Set<String> keys = bundle.keySet();
            for (String key : keys) {
                try {
                    json.put(key, bundle.get(key));
                } catch (JSONException e) {
                    Log.d("FirebasePlugin", "onNotificationOpen: json exception");
                    PluginResult result = new PluginResult(PluginResult.Status.JSON_EXCEPTION, e.getMessage());
                    result.setKeepCallback(true);
                    callbackContext.sendPluginResult(result);
                    return;
                }
            }
            Log.d("FirebasePlugin", "onNotificationOpen: send notification to javascript");
            PluginResult result = new PluginResult(PluginResult.Status.OK, json);
            result.setKeepCallback(true);
            callbackContext.sendPluginResult(result);
        }
    }

рд╣рдореНрдо... рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИ рддреЛ рд╕реВрдЪрдирд╛рдПрдВ (рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░) рдбрд┐рд▓реАрд╡рд░ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВ (рдорд╛рд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рд╕реАрдзреЗ рдлрд╛рдпрд░рдмреЗрд╕ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЦреЛрд▓рдиреЗ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ .. рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИред

рд╡рд┐рд▓рдВрдм рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ 0.1.13 рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЦреБрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдореЗрд░рд╛ рдРрдк рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдХреЛрдИ рдЦрдмрд░ ?

рдореИрдВ рдХрд┐рд╕реА рднреА onNotificationOpen рдХреЙрд▓рдмреИрдХ рд╕рдлрд▓рддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ рдпрд╛ 0.1.17 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рд╡рд┐рдлрд▓ рд╣реВрдВред рдкреЗрд▓реЛрдб рдХрд╛рдо рдХреЗ рд╕рд╛рде рди рддреЛ рдПрдкреАрдЖрдИ рдпрд╛ рдЬреАрдпреВрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрдирд╛ред рдХреЛрдИ рд╕реБрдЭрд╛рд╡?

рд╣рдо рдЙрд╕ рдХреЛрдб @Mehuge рдкреЛрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрдирд╛рддреЗ? рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдореБрдЭреЗ рд╕рд╛рдорд╛рдиреНрдп рд▓реЙрдиреНрдЪ рдЗрд░рд╛рджреЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рдмреЗрд╕рдкреНрд▓рдЧрд┐рди рдореЗрдВ рдиреНрдпреВрдЗрдиреНрдЯреЗрдВрдЯ рдкрд░ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ рдирдпрд╛ рдЗрдВрдЯреЗрдВрдЯ рдХреЛрдб рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ

<strong i="6">@Override</strong>
public void onNewIntent(Intent intent) {
  Log.d(TAG, "new intent " + intent);
  super.onNewIntent(intent);
  Bundle data = intent.getExtras();
  if (data != null) {
    String id = data.getString("id");
    if (null != id) {
      FirebasePlugin.handleNotificationBundle(data);
    } else {
      Log.d(TAG, "Not a notification intent, ignored");
    }
  }
}

рдореИрдВ рдЗрд╕рд╕реЗ рдкреВрд░реА рддрд░рд╣ рдЦреБрд╢ рдирд╣реАрдВ рд╣реВрдВред рдпрд╣ рдЗрд░рд╛рджрд╛ рдмрдВрдбрд▓ рдореЗрдВ рдПрдХ рдЖрдИрдбреА рд╕рдВрдкрддреНрддрд┐ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдореЗрд░рд╛ рд╕рд░реНрд╡рд░ рдХреЛрдб рд╣рдореЗрд╢рд╛ рднреЗрдЬрддрд╛ рд╣реИред рдРрд╕рд╛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ рдЬреЛ GCM рдпрд╛ FBM рдордЬрд╝рдмреВрддреА рд╕реЗ рдмрдВрдбрд▓ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдзрд┐рд╕реВрдЪрдирд╛/рд╕рдВрджреЗрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд░рд╛рджреЗ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрднреА-рдХрднреА рд╣рдореЗрдВ рдХреБрдЫ Google рдЧреБрдг рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВ (рдпрджрд┐ рд╣рдо рдЯреНрд░реЗ рд╕реЗ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЦреЛрд▓ рд░рд╣реЗ рд╣реИрдВ) рд▓реЗрдХрд┐рди рд╕рдВрджреЗрд╢реЛрдВ рдФрд░ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдбрд┐рд▓реАрд╡рд░ рд╣реЛрдиреЗ рдкрд░, рд╕рдВрджреЗрд╢ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдФрд░ рдХреБрдЫ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рд▓реЙрдиреНрдЪ рдЗрд░рд╛рджрд╛ рд╣реИ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рдХрд╛рд░рдг, рдХрдо рд╕реЗ рдХрдо рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рдерд╛ред

рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рд╢рд╛рдпрдж рдПрдХ рдмреЗрд╣рддрд░ рддрд░реАрдХрд╛ рд╣реИред

@Mehuge рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ рдкрд╛рд╕ рдореМрдЬреВрдж рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдЬрд┐рд╕реНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рдареАрдХ рд╣реИ рдпрд╣рд╛рдБ рдпрд╣ https://gist.github.com/Mehuge/374ee24d9e18a6c7ccc171d3e521b7ad рд╣реИ

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд╣рд╛рдБ рдХреБрдЫ рдмрд┐рдЯреНрд╕ рд╣реИрдВ рдЬреЛ рд╣рдорд╛рд░реЗ рдРрдк рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВред рдореИрдВрдиреЗ рдХреЛрдб рдХреЛ рд╣рдорд╛рд░реЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕реЗ рдмрд╣реБрдд рдмрджрд▓ рд░рд╣рд╛ рдерд╛ред рдЕрдВрдд рдореЗрдВ, рдореБрдЭреЗ рд╢рд╛рдпрдж рдкреНрд▓рдЧрдЗрди рдХреЛ рдлреЛрд░реНрдХ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ, рдореИрдВ рд╕рдордп рд╕реЗ рдкреАрдЫреЗ рдерд╛ рдФрд░ рдкреВрд░реА рдЪреАрдЬ рд╕реЗ рдХрд╛рдлреА рддрдВрдЧ рдЖ рдЧрдпрд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдХреБрдЫ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд░рд╛рд╕реНрддрд╛ рдЕрдкрдирд╛рдпрд╛ред рдХрд╕реНрдЯрдо рдмрд┐рдЯреНрд╕ рдХрд╛рдлреА рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рд╣реИ, рдЙрд╕реЗ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХрдм рд░реЛрдХрд╛ рдЧрдпрд╛ рд╣реИ (рдпрд╛ рдЕрдзрд┐рдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд░реЛрдХрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ) рддрд╛рдХрд┐ рдпрд╣ рддрдп рдХрд░ рд╕рдХреЗ рдХрд┐ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдмрдирд╛рдирд╛ рд╣реИ рдпрд╛ рд╕реАрдзреЗ рд╕рдВрджреЗрд╢ рджреЗрдирд╛ рд╣реИред рдЖрдкрдХреЛ рдЙрд╕ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдпрд╛ рдирд╣реАрдВ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдРрд╕реА рд╕реВрдЪрдирд╛рдПрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рдереЗ рдЬреЛ рддрдм рднреЗрдЬреА рдЧрдИ рдереАрдВ рдЬрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдВрдбреНрд░реЙрдЗрдб рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдерд╛, рдмрд▓реНрдХрд┐ рд╕реАрдзреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреА рдкреЙрдЬрд╝ рд╕реНрдерд┐рддрд┐ рдХреЗ рдкреНрд▓рдЧрдЗрди рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреА рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдирд┐рдореНрди рдХреЛрдб рдЬреЛрдбрд╝реЗрдВред

<strong i="9">@Override</strong>
protected void onResume() {
    FirebasePlugin.setPaused(false);
    super.onResume();
}

<strong i="10">@Override</strong>
protected void onPause() {
    FirebasePlugin.setPaused(true);
    super.onPause();
}

рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдкрдХреЛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рд╕реВрдЪрдирд╛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдЖрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реАрдзреЗ рдРрдк рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рди рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЦреЛрд▓рдХрд░, рддреЛ рдЖрдкрдХреЛ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╣рдорд╛рд░реЗ рдРрдкреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореИрдВ рдХрд┐рд╕реА рднреА рдмрдВрдж рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдЖрдкрдХреА рд╕реНрдерд┐рддрд┐ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдореИрдВ рдЕрдВрддрд┐рдо рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреБрд╢ рдирд╣реАрдВ рд╣реВрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝реА рдЧрдИ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪрд╛рдмрд┐рдпрд╛рдВ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдереАрдВ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИрдВ, рдореИрдВ рдЕрднреА рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдЖрдпрд╛ рд╣реВрдВред

рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдпрд╛ рд╕реБрдЭрд╛рд╡ рдореЗрдВ рд╕реБрдзрд╛рд░ рдпрд╛ рдХрд┐рд╕реА рднреА рджреЛрд╖ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд╣реЛрдЧреАред рдореБрдЭреЗ рд╕рд╛рдорд╛рдиреНрдп рд▓реЙрдиреНрдЪ рд╕реЗ GCM рдкреЗрд▓реЛрдб рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдХреЗ рдЗрд░рд╛рджреЗ рдХрд╛ рдмреЗрд╣рддрд░ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реЛрдЧреАред рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ Google рдЧреБрдг рдХреЗрд╡рд▓ рдХреБрдЫ рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рд╛рде рд╣реА рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреА рд╕реВрдЪрдирд╛рдУрдВ (is_push, is_notify, рдкреНрд░рд╕рд╛рд░рдг) рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдореЗрд░реЗ рдкреНрд░рдпрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

# 108 рджреЗрдЦреЗрдВ

рдореЗрд░реЗ рд▓рд┐рдП, рдореИрдВ рдЗрд╕ рддрд░рд╣ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░ рд╕рдХрддрд╛ рдерд╛:

{
  "registration_ids": [...tokens],
  "notification" : {
        "title": "Notf title",
        "body": "Notification body"
     },
     "data": {
        "click_action": "/call/dwEugLJ9PTVdcFb064CX"
     }
}

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреНрд▓рд┐рдХ_рдПрдХреНрд╢рди рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдРрдк рдХреЗ рд╕рд╛рде рдХреЙрд░реНрдбреЛрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛)ред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

dhavalsoni2001 picture dhavalsoni2001  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

danielpalen picture danielpalen  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JonSmart picture JonSmart  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DanielAccorsi picture DanielAccorsi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

michaelreiser picture michaelreiser  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ