ios - 从通知中删除声音

标签 ios iphone notifications

我正在尝试创建一个 UISwitch,以便用户可以选择不从应用程序内部获取推送声音。 可能吗?我试过无声重新注册 -

+ (void)registerToNotificationWithoutSound
{
    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
    {
        [[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
        [[UIApplication sharedApplication] registerForRemoteNotifications];
    }
    else
    {
        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
         (UIUserNotificationTypeBadge | UIUserNotificationTypeAlert)];
    }
}

所做的只是禁用用户在 iPhone 设置中切换声音开/关的功能,但仍然记得用户在切换功能可用时选择的内容。

例如 - 如果用户从 iPhone 设置启用推送声音而不是从应用程序禁用它 - 他现在无法在 iPhone 设置上看到或使用通知声音切换开关,但在接收推送时仍然可以听到声音。

谢谢

最佳答案

从客户端(iOS 应用)是不可能的。但是,您可以删除从服务器端(后端)发送的有效负载中的声音 key ,推送通知将保持静音。

默认声音:

{"aps":{"alert":"Hello","badge":1,"sound":"default","category":"your_category_key"}}

没有声音:

{"aps":{"alert":"Hello","badge":1,"category":"your_category_key"}}

关于ios - 从通知中删除声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28167185/

相关文章:

iphone - 无法使用 ShareKit 在 iPhone 上发布到 Twitter

iphone - 将 SQLite 数据库添加到 iPhone 应用程序

ios - 是否可以专门向Apple Watch发送本地通知?

ios - 在遗留项目中保留黑色状态栏

javascript - 如何在不使用 chrome 网上商店的情况下创建像 facebook 一样的通知警报?

ios - 快速本地通知 - 每天只需要一次(显示通知太多)

ios - NSURLConnection 响应的 expectedContentLength -1

ios - SpriteKit animateWithTextures 不适用于纹理图集

ios - CMP计步器数据超过7天

android - 使用适用于 Android 和 iOS 的 phonegap 的默认共享