是否可以在 iOS 7 上从我的应用程序中禁用推送通知声音?

Posted

技术标签:

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

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

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

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

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

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

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

【问题讨论】:

您找到解决方案了吗? 【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于是否可以在 iOS 7 上从我的应用程序中禁用推送通知声音?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Vista 和 Windows 7 上从我的应用程序启动屏幕键盘

如何从应用程序 iOS 8 启用/禁用推送通知

如何在 iPad 上从我的应用程序访问第三方应用程序?

如何从我的 iOS 应用程序中删除推送通知?

如何在 Elastic beanstalk 上从我的 PHP 按需运行 python 脚本?

如何在 iPhone 上从 Facebook 注销(本机/集成)