开发者社区 问答 正文

阿里云iOS推送服务端可以设置applicationIconBadgeNumber 这个值吗

阿里云iOS推送服务端可以设置applicationIconBadgeNumber 这个值吗,就是桌面应用右上角的小红点未读数。

展开
收起
守望别时 2016-01-21 16:30:29 4030 分享 版权
阿里云 AI 助理回答

是的,阿里云iOS推送服务端可以通过设置参数来控制应用桌面图标右上角的小红点未读数(即 applicationIconBadgeNumber)。具体实现方式如下:


1. 通过服务端设置角标数

在推送通知时,可以通过服务端接口直接设置 iOS 应用图标的角标数。相关参数为 iOSBadge,其值表示应用图标右上角显示的数字。

  • 参数说明

    • iOSBadge:设置角标的具体数值,例如 1 表示显示数字 1。
    • 如果需要清空角标,可以将 iOSBadge 设置为 0
  • 注意事项

    • 如果启用了角标自增功能(iOSBadgeAutoIncrement),则 iOSBadge 参数必须为空。
    • 角标数的有效范围为 [0, 99999]
  • 示例配置: 在调用推送接口时,设置以下参数:

    {
    "iOSBadge": 5
    }
    

    这将在应用图标右上角显示数字 5


2. 启用角标自增功能

如果希望角标数自动递增,可以启用 iOSBadgeAutoIncrement 功能。此功能由推送服务端维护每个设备的角标计数。

  • 参数说明

    • iOSBadgeAutoIncrement:布尔值,设置为 true 时启用角标自增功能。
    • 启用后,客户端需要主动同步当前角标数到服务端,使用 syncBadgeNum 接口完成同步。
  • 客户端同步角标数: 客户端需调用以下接口将当前角标数同步到服务端:

    [CloudPushSDK syncBadgeNum:currentBadgeNumber withCallback:^(CloudPushCallbackResult *result) {
      if (result.success) {
          NSLog(@"角标数同步成功");
      } else {
          NSLog(@"角标数同步失败: %@", result.errorMessage);
      }
    }];
    
  • 注意事项

    • 启用角标自增功能时,iOSBadge 参数必须为空。
    • 此功能要求 SDK 版本为 V1.9.5 及以上。

3. 客户端清零角标

如果需要在客户端清零角标数,可以直接操作 applicationIconBadgeNumber 属性。例如,在用户点击通知或进入应用时清零角标:

[UIApplication sharedApplication].applicationIconBadgeNumber = 0;

此操作会将应用图标右上角的角标数清零,并且不会影响服务端的角标计数。


4. 重要提醒

  • 角标显示依赖 APNs:推送消息通过苹果的 APNs 通道送达时,角标才会生效。如果设备不在线,且未开启离线消息转通知功能(iOSRemind),则角标可能无法正确显示。
  • 静默通知不影响角标:静默通知(content-available: 1)不会触发角标更新,仅用于后台数据同步。

通过上述方法,您可以灵活地在服务端和客户端控制 iOS 应用图标的角标数,满足不同场景下的需求。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答