默认情况下,应用图标徽章可见

时间:2016-04-28 09:02:37

标签: ios iphone ionic-framework

我很难完成这项工作。我在用什么:

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.

没有运气。该应用程序图标的右上角仍然存在该死的徽章。

3 个答案:

答案 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