我有一个使用 Pushy ( https://pushy.me ) 处理推送通知的 Capacitor/Cordova 应用程序。向设备发送推送通知似乎工作正常,作为该事务的一部分,我可以在应用程序关闭时在图标上设置应用程序的通知计数。
但是,Pushy 似乎只有一个 JS 选项来清除计数器Pushy.clearBadge();
,而不是在应用程序运行时将其更改为特定数字。场景是如果用户已阅读一条消息,但留下两条未读消息然后关闭应用程序,我希望计数器正确。
挖掘 PushyPlugin.swift 代码,函数Pushy.clearBadge();
如下所示:
@objc(clearBadge:)
func clearBadge(command: CDVInvokedUrlCommand) {
// Clear app badge
UIApplication.shared.applicationIconBadgeNumber = 0;
// Always success
self.commandDelegate!.send(
CDVPluginResult(
status: CDVCommandStatus_OK
),
callbackId: command.callbackId
)
}
如果我能在该行中传递一个非零的整数,这非常接近给我我需要的东西UIApplication.shared.applicationIconBadgeNumber = 0;
除了认识熟悉的编程语法之外,我对 Swift 的了解很丰富。我以为我会破解它并尝试将其添加到 PushyPlugin.swift 文件中:
@objc(setBadge:)
func setBadge(command: CDVInvokedUrlCommand) {
// Clear app badge
UIApplication.shared.applicationIconBadgeNumber = 100;
// Always success
self.commandDelegate!.send(
CDVPluginResult(
status: CDVCommandStatus_OK
),
callbackId: command.callbackId
)
}
但是当我尝试旋转时,该应用程序咳嗽了Pushy.setBadge is not a function
(注意,我用 100 进行测试只是为了看看会发生什么,理想情况下我想将一个整数传递给那个新破解的函数)。
所以到目前为止我学到的是我对 Swift 一无所知。
我在这方面有点正确,还是有更好的方法来设置徽章计数器?