如何解决在iOS的Capacitor / Cordova中使用Pushy更改徽章通知计数
我有一个使用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一无所知。
我是不是很正确,还是有更好的方法设置徽章计数器?
解决方法
好,所以我在pushy-cordova / www文件夹中发现了一个Pushy.js文件,我需要在其中添加新功能
{
name: 'setBadge',noError: true,noCallback: true,platforms: ['ios']
},
然后,我在此添加的PushyPlugin.swift函数经过反复试验:
@objc(setBadge:)
func setBadge(command: CDVInvokedUrlCommand) {
UIApplication.shared.applicationIconBadgeNumber = command.arguments[0] as! Int;
// Always success
self.commandDelegate!.send(
CDVPluginResult(
status: CDVCommandStatus_OK
),callbackId: command.callbackId
)
}
然后可以在我的电容器项目中使用Pushy.setBadge(X);
(X是要在图标上显示的int值)来调用它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。