我正在使用Ionic Push Notifications,它们正常工作:
1)如果应用程序处于后台或未运行,设备会收到通知
2)如果应用程序位于前台并使用该数据进行更改,应用程序将收到通知数据(而非通知警报)。
但我有另一个案例,我正在寻找其解决方案: 3)如果设备处于后台或未运行,则设备不应接收提示但是设备应该只接收数据(不是通知提示),如果它在前台。
我正在从nodejs服务器发送通知:
var data = {
"tokens":tokens,
"notification":{
"alert":"MESSAGE",
"ios":{
"badge":1,
"expiry": 1423238641,
"priority": 10,
"contentAvailable": 1,
"payload":{
"key1":"value",
"key2":"value"
}
},
"android":{
"collapseKey":"foo",
"delayWhileIdle":true,
"timeToLive":300,
"payload":{
"key1":"value",
"key2":"value"
}
}
}
}
var dataString = JSON.stringify(data);
var headers = {
'Content-Type': 'application/json',
'X-Ionic-Application-Id': 'APP_ID',
'Authorization' : 'KEY_HERE'
};
var options = {
url: 'https://push.ionic.io/api/v1/push',
headers: headers,
method: 'post',
body: dataString
};
function callback(error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
}else{
console.log(body);
}
}
request(options, callback);