iOS 推送通知 - 如何在没有声音的情况下指定警报和徽章?

Posted

技术标签:

【中文标题】iOS 推送通知 - 如何在没有声音的情况下指定警报和徽章?【英文标题】:iOS Push Notifications- How to specify alert and badge with NO sound? 【发布时间】:2012-03-23 15:08:05 【问题描述】:

我想知道如何发送没有声音的推送通知。

来自Apple's website:

此文件中的声音作为警报播放。如果声音文件 不存在或默认值被指定为值,默认警报 播放声音。

这表示如果我对声音文件使用“默认”,或者如果我指定一个不存在的声音文件,它将播放默认的警报声音。

但它确实明确说明了如何没有声音...如果我只是在有效载荷中不包含声音(将其排除在外),这是否意味着不会播放声音?

谢谢

【问题讨论】:

【参考方案1】:

如果我只是在有效载荷中不包含声音(将其排除在外),这是否意味着不会播放声音?

没错。只是不要在有效负载中包含sound。或者,如果您永远不想播放声音,甚至不要注册声音通知类型。

【讨论】:

【参考方案2】:

您应该将您的应用配置为接收您希望接受的 PN 类型,共有三个选项:

    显示短信 播放简短的声音 在应用图标的徽章中设置一个数字

您可以在您认为合适的任何组合中使用这三个,现在您只需在您的应用程序中注册ForRemoteNotificationTypes,如下所示:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
 
    // Let the device know we want to receive push notifications
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:
        (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)];
 
    return YES;

根据您的情况选择适当的选项,一旦应用启动并注册推送通知,将弹出一条消息询问用户是否接受推送通知。

【讨论】:

【参考方案3】:

我猜你在注册通知时会做这样的事情?

[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound]; 

只是不包括 UIRemoteNotificationTypeSound。

【讨论】:

以上是关于iOS 推送通知 - 如何在没有声音的情况下指定警报和徽章?的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 在没有实际推送的情况下显示推送弹出窗口并播放推送声音

ios8 的 Parse 推送通知中没有声音

使用 GCM 的 iOS 自定义推送通知声音

如何显示自定义警报以在 ios 中启用通知

如何静音推送通知?

如何在没有真实设备的情况下在 iOS 上测试推送通知?