我正在尝试创建一个 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/