NativeScript-如何减少iOS的应用程序图标标志编号

时间:2019-02-07 22:29:01

标签: javascript ios notifications nativescript

使用Nativescript时,我希望能够在应用中执行特定操作时减少图标标志的数量。

我已从以下代码开始(示例):

if (app.ios) {
  app.getNativeApplication().applicationIconBadgeNumber = 5;
}

我已经读到,对于iOS 10或更高版本,我需要获得UNUserNotificationCenter的授权。当应用开始请求授权时,我尝试使用应用委托,似乎无法从Nativescript访问授权类。

我尝试寻找插件,但似乎找不到任何...

如果有人知道我如何可以访问Authorization api甚至通过NativeScript处理图标徽章更新,将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以使用nativescript-local-notifications来请求权限。

答案 1 :(得分:0)

我取得了一些进展,在我的AppDelegate中,我更新为:

        appDelegate.prototype.applicationDidFinishLaunchingWithOptions = function (application, launchOptions) {
            var center = coreUtils.ios.getter(UNUserNotificationCenter, UNUserNotificationCenter.currentNotificationCenter);
            center.delegate = this; 
            const authorizationOptions = UNAuthorizationOptions.Badge;
            center.requestAuthorizationWithOptionsCompletionHandler(authorizationOptions, (granted, error) => {
                if(!error) {
                    application.applicationIconBadgeNumber = 5;
                } else {
                    console.log("Error", error);
                }
            });

现在的问题是,当我打开应用程序时,applicationIconBadgeNumber设置为0。我能够通过将事件监听器置于applicationDidEnterBackground事件上并设置{{1} }到5。然后我可以看到徽章图标。现在,我必须弄清楚为什么applicationIconBadgeNumber在应用打开时被设置为0。