使用Nativescript时,我希望能够在应用中执行特定操作时减少图标标志的数量。
我已从以下代码开始(示例):
if (app.ios) {
app.getNativeApplication().applicationIconBadgeNumber = 5;
}
我已经读到,对于iOS 10或更高版本,我需要获得UNUserNotificationCenter
的授权。当应用开始请求授权时,我尝试使用应用委托,似乎无法从Nativescript访问授权类。
我尝试寻找插件,但似乎找不到任何...
如果有人知道我如何可以访问Authorization api甚至通过NativeScript处理图标徽章更新,将不胜感激。
答案 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。