首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在iOS上使用Pushy在电容器/Cordova中更改工卡通知计数

在iOS上使用Pushy在电容器/Cordova中更改工卡通知计数
EN

Stack Overflow用户
提问于 2020-08-25 23:57:47
回答 1查看 275关注 0票数 0

我有一个使用push (https://pushy.me)的电容/科尔多瓦应用程序来处理推送通知。向设备发送推送通知似乎工作得很好,作为交易的一部分,我可以在应用程序关闭时在图标上设置应用程序的通知计数。

然而,Pushy似乎只有一个JS选项来清除计数器Pushy.clearBadge();,而不是在运行时从应用程序中将其更改为特定的数字。如果用户已经阅读了一条消息,但留下了两条未读的消息,然后关闭了应用程序,我希望计数器是正确的。

深入研究PushyPlugin.swift代码,Pushy.clearBadge();的函数如下所示:

代码语言:javascript
复制
@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文件中:

代码语言:javascript
复制
@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一无所知。

我是不是说对了,或者有没有更好的方法来设置徽章计数器?

EN

回答 1

Stack Overflow用户

发布于 2020-08-26 00:41:27

好的,我在pushy cordova/www文件夹中发现了一个Pushy.js文件,我需要在其中添加我的新函数

代码语言:javascript
复制
{
    name: 'setBadge',
    noError: true,
    noCallback: true,
    platforms: ['ios']
},

然后,对我添加到下面的PushyPlugin.swift函数进行了一些试错:

代码语言:javascript
复制
@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值)来调用它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63582732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档