我很难完成这项工作。我在用什么:
1 - The Ionic Framework (version 1.7.14)
2 - Ionic push which is instantiated with: Ionic.Push. So Im not using ngcordova for push
3 -A real device, an Iphone 6s. And I am on OSX.
自从我开始从Ionic Push发送推送通知
http://docs.ionic.io/docs/push-overview
发生了一件奇怪的事。我已经从curl和我自己的后端应用程序发送了一定数量的推送。
问题是编号为“1”的徽章从未从应用程序图标中消失。我试图使用Iphone和xcode删除并重新安装该应用程序。但每次安装应用程序时,带有数字1的徽章都会直接显示在应用程序图标上。即使我进入应用程序然后关闭它,徽章仍然存在。为什么呢?
我真的不明白谁应该注意重置应用程序图标上的徽章。它是Ionic中的javascript代码吗? 操作系统默认不管理它吗?一旦打开具有徽章的应用程序,操作系统是否应该立即清除应用程序图标上的徽章? 我在js-controller中有这个代码:
var push = new Ionic.Push({
"debug": true,
"pluginConfig": {
"ios": {
"badge": false,
"sound": true
},
"android": {
"iconColor": "#343434"
}
}
});
然而,它没有帮助。应用程序图标上的徽章仍然存在。
最后,我做了以下事情:
1 - I removed the code for push in javascript.
2 - I opened "settings" on my iphone and disabled my app to be updated in background.
没有运气。该应用程序图标的右上角仍然存在该死的徽章。
答案 0 :(得分:0)
尝试以下
将“徽章”:false 更改为“徽章”:0
因为徽章表示通知的总数而不是展示/隐藏的布尔值。
将其设为 0
希望有所帮助......
答案 1 :(得分:0)
根据推送时的Ionic documentation,pluginConfig中指定的选项会传递给Phonegap Push Plugin。
如果您查看插件文档,您将看到clearBadge选项正是您要查找的内容,应该为android和ios指定,如下所示:
"pluginConfig": {
"ios": {
"badge": true,
"sound": true,
"clearBadge": true
},
"android": {
"clearBadge": true
}
}
答案 2 :(得分:0)
如果您使用的是Phonegap plugin push,也可以这样做。
var pushNotification = PushNotification.init(
{ "android": {"senderID": config.senderId, "icon": "notification","clearBadge":"true"},
"ios": {"alert": "true", "badge": "false", "sound": "true", "clearBadge": "true"},
"windows": {} } );
pushNotification.on('notification', function(data) {
pushNotification.setApplicationIconBadgeNumber(function() {
console.log("clear badge success");
}, function() {
console.log("clear badge error");
}, 0); //setting 0 will clear the badge
console.log("notification " + JSON.stringify(data));
});
您可以在此处看到doc