ios - Twilio Chat SDK iOS,通知徽章不适用于应用
问题描述
我已将 Twilio Chat SDK 用于我的 iOS 应用程序。将新消息添加到频道时的通知很好。但它不会更新应用程序的通知徽章计数。我附上了 Twilio Portal 中推送通知配置的屏幕截图。
另外,当我要求用户授权通知时,
选项集是:
let options: UNAuthorizationOptions = [.badge, .sound, .alert]
解决方案
您的通知负载应如下所示以更新应用徽章计数:
{
"aps" : {
"alert" : "You got notificaiton.",
"badge" : 5
}
}
收到此有效负载后,徽章计数将更新为 5。
更新:如 Twilio文档中所述:
要更新应用程序图标上的徽章计数,您应该将徽章计数从聊天客户端委托传递给应用程序:
func chatClient(_ client: TwilioChatClient, notificationUpdatedBadgeCount badgeCount: UInt) {
UIApplication.shared.applicationIconBadgeNumber = Int(badgeCount)
}
注意:但是,这仅在应用程序处于活动状态时有效。要在应用程序处于非活动状态时更新徽章计数,您需要通过自定义 Twilio 服务器将通知负载配置为上述格式,默认配置不允许这样做。
当应用处于非活动状态时,您可以使用此方法附加徽章计数:
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any], fetchCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
if UIApplication.shared.applicationState != .active {
UIApplication.shared.applicationIconBadgeNumber += 1
}
}
推荐阅读
- reactjs - React native:无法加载捆绑意外的超类
- angular - Google 登录与 Angular 2 移动应用程序的集成
- javascript - 是否需要在节点中使用 eval 来运行另一个文件中的代码
- javascript - 在复选框中获取选中的值并放入列表
- vue.js - 图标在表格列内停止工作
- laravel - Laravel centos vs ubuntu 性能
- php - 在laravel 5.6中单击导航栏时如何使其处于活动状态?
- reactjs - 反应重新渲染组件但不是整个页面问题
- php - 如何访问外部核心 php 文件中的 codeigniter 会话值
- android - JSONArray 无法解析