我有一个使用push (https://pushy.me)的电容/科尔多瓦应用程序来处理推送通知。向设备发送推送通知似乎工作得很好,作为交易的一部分,我可以在应用程序关闭时在图标上设置应用程序的通知计数。
然而,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一无所知。
我是不是说对了,或者有没有更好的方法来设置徽章计数器?
发布于 2020-08-26 00:41:27
好的,我在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值)来调用它。
https://stackoverflow.com/questions/63582732
复制相似问题