рдХреЙрд░реНрдбреЛрд╡рд╛ 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 (); `
рдореБрдЭреЗ рд╕рднреА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЯреНрд░реЗ рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВ: рдкреГрд╖реНрдарднреВрдорд┐, рдЕрдЧреНрд░рднреВрдорд┐ рдФрд░ рдмрдВрдж рдореЗрдВ рдРрдк рдФрд░ рдЬрдм рдореИрдВ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рддреАрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдРрдк рдЦреБрд▓рд╛ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЙрд▓рдмреИрдХ рдЯреНрд░рд┐рдЧрд░ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдХреЛрдб рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реИ?
рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред
рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛, рдПрдВрдбреНрд░реЙрдЗрдб рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдкрд░ рдЖрддреА рд╣реИ рд▓реЗрдХрд┐рди рдРрдк рдХреЗ рдЕрдВрджрд░ рдХреЛрдИ рдХреЙрд▓рдмреИрдХ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рд╡реА. 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);
рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ notificationBundle
рдЙрдкрд▓рдмреНрдз рд╣реЛрддрд╛ рд╣реИ рдЬрдм onNotificationOpen
рдХреЙрд▓рдмреИрдХ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдорд┐рд▓рддреА рд╣реИред
рдореИрдВрдиреЗ рдкреВрд░реЗ onNotificationOpen
рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╣реИ:
onNotificationOpen
рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ (рдмрд┐рдирд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИonNotificationOpen
рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмрд┐рдирд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП)рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реИ, рдпрджрд┐ рд╡рд╣ рд╕рдВрднрд╡ рд╣реЛ (рдЕрднреА рддрдХ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рддреЛ рд╕реВрдЪрдирд╛ рдХреЛ рдЦреЛрд▓реЗ рдмрд┐рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рддреБрд░рдВрдд рдбрд┐рд▓реАрд╡рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред
рдореИрдВ рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдиреЛрдм рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред
OnNotificationOpe nReceiver:onReceive рдЕрдм рдмрд╕ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
FirebasePlugin.onBroadcastReceive(context, intent);
FirebasePlugin
рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрджрд▓рд╛ рдЧрдпрд╛
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"
}
}
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреНрд▓рд┐рдХ_рдПрдХреНрд╢рди рдХреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рдирд╛ рдкрдбрд╝рд╛ (рдореИрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдРрдк рдХреЗ рд╕рд╛рде рдХреЙрд░реНрдбреЛрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛)ред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдкреВрд░реЗ
onNotificationOpen
рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рд╣реИ рдФрд░ рдпрд╣ рд▓рдЧрднрдЧ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╣реИ:onNotificationOpen
рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдореЗрдВ (рдмрд┐рдирд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИonNotificationOpen
рдХреЛ рд╡рд░реНрддрдорд╛рди рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдмрд┐рдирд╛ рдкреБрдирдГ рд▓реЛрдб рдХрд┐рдП)рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдмрдЪреА рд╣реИ, рдпрджрд┐ рд╡рд╣ рд╕рдВрднрд╡ рд╣реЛ (рдЕрднреА рддрдХ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ) рддреЛ рд╕реВрдЪрдирд╛ рдХреЛ рдЦреЛрд▓реЗ рдмрд┐рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рддреБрд░рдВрдд рдбрд┐рд▓реАрд╡рд░ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред
рдореИрдВ рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдиреЛрдм рдХрд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдХреБрдЫ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕реЛрдЪрд╛ рдХрд┐ рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░реВрдВрдЧрд╛ред
OnNotificationOpe nReceiver:onReceive рдЕрдм рдмрд╕ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ
FirebasePlugin
рдХреЛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдмрджрд▓рд╛ рдЧрдпрд╛