【问题标题】:Is it possible to disable push notification sounds from within my app on iOS 7?是否可以在 iOS 7 上从我的应用程序中禁用推送通知声音?
【发布时间】:2014-07-22 09:42:06
【问题描述】:

我的应用程序的用户已请求允许他们禁用推送通知的声音。 他们希望能够从应用程序中执行此操作,而不必通过设置->通知中心->等。这对他们来说太复杂了——他们更喜欢一个简单的开关来打开/关闭声音。

明确地说,不想一起禁用通知

我尝试了几种不同的方法,但似乎都不起作用:

  1. 通过再次调用- (void)registerForRemoteNotificationTypes:(UIRemoteNotificationType) 尝试“重新注册”,省略UIRemoteNotificationTypeSound没用
  2. 通过调用- (void)unregisterForRemoteNotifications 取消注册和注册并再次注册(使用上述调用)而不使用UIRemoteNotificationTypeSound也没有用

这甚至可能吗?如果有怎么办?

另外,我不能在推送消息本身中为 JSON 使用“声音”键(可能发送静音/空声音),因为我正在使用 Amazon SNS 将推送发送到整个“主题” " - 所以我无法真正自定义每个用户的消息(禁用声音的用户与未禁用的用户),事实上我什至没有服务器端的信息。

【问题讨论】:

  • 您找到解决方案了吗?

标签: ios objective-c ios7 push-notification apple-push-notifications


【解决方案1】:

您需要在用于向您的应用用户发送推送通知的服务中进行配置。注册推送通知部分只需注册设备以接收通知。

您可以在 Apple 开发者网站上阅读更多关于您可以随推送通知一起发送的内容:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

【讨论】:

    【解决方案2】:

    这当然需要一个服务器端的解决方案来解决这个问题。我假设您有一个用于启用-禁用推送通知的 API,制作一个类似的 API,但用于声音并将其存储在您的数据库中,如果用户想要声音或不想要声音。
    那么,对于实际的声音-没有声音的事情,有两种方法:

    • 首先是尝试不要在推送有效负载中发送“声音”键,有人说它有效,但 Apple 在他们的文档中声明它没有
    • 第二个(我确定可以)是设置声音,并在客户端包含一个静音的声音文件,然后将该文件的名称从服务器设置为“声音”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多