Cordova Android 中的 Firebase 推送通知
将 Firebase 添加到你的 Android 项目中
将 Firebase 添加到你的应用
要将 Firebase 添加到你的应用,你需要一个适用于你应用的 Firebase 项目和 Firebase 配置文件。
- 如果你还没有 Firebase 项目,请在 Firebase 控制台中创建 Firebase 项目。如果你已有与移动应用程序关联的现有 Google 项目,请单击“导入 Google 项目”。否则,单击创建新项目。
- 点击添加 Firebase 到你的 Android 应用。如果你要导入现有的 Google 项目,这可能会自动发生,你只需下载配置文件即可。
- 出现提示时,输入应用程序的包名称。输入你的应用正在使用的包名称非常重要; 只有在将
应用程序添加到 Firebase 项目时才能设置此项。 - 最后,你将下载 google-services.json 文件。你可以随时再次下载此文件。如果你还没有这样做,请将其复制到项目的模块文件夹中,通常是 app /。
Cordova Firebase 推送通知插件
https://www.npmjs.com/package/cordova-plugin-fcm
要获取访问令牌:
FCMPlugin.getToken(
function(token){
alert(token);
},
function(err){
console.log('error retrieving token: ' + err);
}
);
回调接收推送通知:
FCMPlugin.onNotification(
function(data){
if(data.wasTapped){
//Notification was received on device tray and tapped by the user.
alert( JSON.stringify(data) );
}else{
//Notification was received in foreground. Maybe the user needs to be notified.
alert( JSON.stringify(data) );
}
},
function(msg){
console.log('onNotification callback successfully registered: ' + msg);
},
function(err){
console.log('Error registering onNotification callback: ' + err);
}
);
将 get 访问令牌和回调放在 receiveEvent 函数中的 index.js 文件中接收推送通知
通过 REST API 发送推送通知
//POST: https://fcm.googleapis.com/fcm/send
//HEADER: Content-Type: application/json
//HEADER: Authorization: key=AIzaSyAMMh0mdVIRXPcBejyatAtdZgmklepwoNs //key is server-key
{
"notification":{
"title":"Notification title", //Any value
"body":"Notification body", //Any value
"sound":"default", //If you want notification sound
"click_action":"FCM_PLUGIN_ACTIVITY", //Must be present for Android
"icon":"fcm_push_icon" //White icon Android resource
},
"data":{
"param1":"value1", /Any data to be retrieved in the notification callback
"param2":"value2"
},
"to":"eRImo7algBM:APA91bHSxSOdmgsOi9su_XytEtCbei0Zi0ODgm76VHvbqeb-WPoZcLyNVpnaLWPLw7U1u93hO0ZhtBxn_hVGxPAwxXXfc-yNy6_kkfzUdTpcI2QPB0vzJBmOFzX3RRZ15wmFkCUFtyhc", //Topic or single device
"priority":"high", //If not set, notification won't be delivered on completely closed iOS app
"restricted_package_name":"com.zensar.fcm" //Optional. Set for application filtering
}
使用 Postman rest 客户端配置上述 REST API。
工作原理向单个设备或主题发送推送通知。
1.a 应用程序在前台:用户在其设备通知栏中收到通知消息。用户点击通知并打开应用程序。用户在 JavaScript 回调中接收通知数据。
1.b 应用程序在后台:用户在其设备通知栏中收到通知消息。用户点击通知并打开应用程序。用户在 JavaScript 回调中接收通知数据。