你能否从App端[iOS]静音传入的推送通知

时间:2013-11-15 15:26:49

标签: ios iphone push-notification apple-push-notifications mute

我正在制作一款使用Apples推送通知的应用。我希望能够有一个“下班”模式,其中仍然会收到推送通知,但是当它进来时没有播放声音。有没有办法在应用程序内部静音这些推送通知?我知道我不能从JSON消息中发送声音,但如果我可以从应用程序内部执行此操作会更容易。我仍然希望收到通知,因此我不想从推送通知中取消注册

2 个答案:

答案 0 :(得分:5)

如果您的应用处于后台,则推送静音的唯一方法是不从JSON消息发送声音。

当您的应用程序是前台时,您将收到应用程序的推送:didReceiveRemoteNotification :,在这种情况下,无论您是否发送声音,应用程序都将默默接收推送。

答案 1 :(得分:4)

您可以将注册更改为不包括声音。

如果您想发出通知,请致电:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];

如果要将通知静音:

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeAlert)];

这将仅允许显示警报和徽章。声音不会播放。

编辑:

我认为以下quote表示如果有效内容包含未启用的类型,则不会过滤通知。设备根本不会显示/发出未启用的类型。

  

如果您的应用未启用任何这些通知类型,系统不会标记图标,显示警报消息或播放警报声音,即使它们已在通知有效负载中指定。

您还应该注意,无论您的应用选择启用/禁用哪种类型的通知,用户都可以手动覆盖该决定:

  

用户可以使用iOS中的“设置”或“OS X中的系统偏好设置”随时修改已启用的通知类型。