单击 iOS 时,Phonegap 插件推送通知保留在托盘中
Phonegap Plugin Push notification stays in tray when clicked on iOS
我构建了一个接收推送通知的 phonegap 应用程序。当我 运行 Android 上的应用程序时,一切正常,但是当我 运行 iOS 上的应用程序时,推送通知在单击后留在通知托盘中。
我正在为 Phonegap 应用程序使用 Phonegap Push Plugin,我正在使用 PushSharp 发送通知。这是我的代码:
var push = PushNotification.init({
"android": { "senderID": "XXXXXXXX", "icon":"pushicon" },
"ios": { "alert": "true", "badge": "true", "sound": "true"},
"windows": {}
});
push.on('registration', function(data) {
var deviceInfo = {
notificationId: data.registrationId,
phonePlatform: device.platform,
phoneVersion: device.version,
phoneModel: device.model
}
info = $.extend(info, deviceInfo);
localStorageService.setDeviceInfo(info);
});
push.on('notification', function (data) {
alert(data.additionalData.title);
});
push.on('error', function(e) {
console.log('Something went wrong: ' + e.message);
});
我也试过调用 push.finish(),但没有任何区别。
有人知道如何确保通知托盘上的通知在点击后消失吗?
规格
- 设备:iPod Touch iOS 7.0.4
- 插件:Phonegap 插件推送
在 iOS 8 及更高版本上,当您点击推送时,它将从通知中心删除,但在 iOS 7 及更早版本上,它不会那样工作。
如果您想从通知中心删除推送通知,您必须将徽章设置为 0。
push.setApplicationIconBadgeNumber(function() {
console.log('success');
}, function() {
console.log('error');
}, 0);
如果不行你可以尝试先设置大一点再设置0
push.setApplicationIconBadgeNumber(function() {
push.setApplicationIconBadgeNumber(function() {
console.log('success');
}, function() {
console.log('error');
}, 0);
}, function() {
console.log('error');
}, 2);
最新版本的插件还有一个clearAllNotifications
方法:
push.clearAllNotifications(function() {
console.log('success');
}, function() {
console.log('error');
});
或者您也可以将 clearBadge 选项传递给 init 方法
var push = PushNotification.init({
"android": { "senderID": "XXXXXXXX", "icon":"pushicon" },
"ios": { "alert": "true", "badge": "true", "sound": "true", clearBadge: "true" },
"windows": {}
});
我构建了一个接收推送通知的 phonegap 应用程序。当我 运行 Android 上的应用程序时,一切正常,但是当我 运行 iOS 上的应用程序时,推送通知在单击后留在通知托盘中。
我正在为 Phonegap 应用程序使用 Phonegap Push Plugin,我正在使用 PushSharp 发送通知。这是我的代码:
var push = PushNotification.init({
"android": { "senderID": "XXXXXXXX", "icon":"pushicon" },
"ios": { "alert": "true", "badge": "true", "sound": "true"},
"windows": {}
});
push.on('registration', function(data) {
var deviceInfo = {
notificationId: data.registrationId,
phonePlatform: device.platform,
phoneVersion: device.version,
phoneModel: device.model
}
info = $.extend(info, deviceInfo);
localStorageService.setDeviceInfo(info);
});
push.on('notification', function (data) {
alert(data.additionalData.title);
});
push.on('error', function(e) {
console.log('Something went wrong: ' + e.message);
});
我也试过调用 push.finish(),但没有任何区别。
有人知道如何确保通知托盘上的通知在点击后消失吗?
规格
- 设备:iPod Touch iOS 7.0.4
- 插件:Phonegap 插件推送
在 iOS 8 及更高版本上,当您点击推送时,它将从通知中心删除,但在 iOS 7 及更早版本上,它不会那样工作。
如果您想从通知中心删除推送通知,您必须将徽章设置为 0。
push.setApplicationIconBadgeNumber(function() {
console.log('success');
}, function() {
console.log('error');
}, 0);
如果不行你可以尝试先设置大一点再设置0
push.setApplicationIconBadgeNumber(function() {
push.setApplicationIconBadgeNumber(function() {
console.log('success');
}, function() {
console.log('error');
}, 0);
}, function() {
console.log('error');
}, 2);
最新版本的插件还有一个clearAllNotifications
方法:
push.clearAllNotifications(function() {
console.log('success');
}, function() {
console.log('error');
});
或者您也可以将 clearBadge 选项传递给 init 方法
var push = PushNotification.init({
"android": { "senderID": "XXXXXXXX", "icon":"pushicon" },
"ios": { "alert": "true", "badge": "true", "sound": "true", clearBadge: "true" },
"windows": {}
});