通过 Parse 发送推送通知时没有声音

Posted

技术标签:

【中文标题】通过 Parse 发送推送通知时没有声音【英文标题】:No sound when sending push notifications through Parse 【发布时间】:2014-08-22 17:30:12 【问题描述】:

无论出于何种原因,我都无法让我的推送通知发出默认声音,也无法在收到它们时更新徽章编号。下面是我的代码。你认为我的代码有问题吗?还是有我不知道的配置问题?感谢您的帮助!

            PFQuery *pushQuery = [PFInstallation query];
            [pushQuery whereKey:@"installationUser" containedIn:recipients];

            // Send push notification to our query
            PFPush *push = [[PFPush alloc] init];
            [push setQuery:pushQuery];
            NSDictionary *data = [NSDictionary dictionaryWithObjectsAndKeys:
                                  message, @"alert",
                                  @"Increment", @"badge",
                                  nil];


            [push setData:data];
            [push setMessage:[NSString stringWithFormat:@"%@ sent you a photo!", currentUser.username]];


            [push sendPushInBackgroundWithBlock:^(BOOL succeeded, NSError *error) 
                if(!error)
                
                    NSLog(@"Push notification sent!");
                
            ];

【问题讨论】:

【参考方案1】:

同样的事情发生在我身上,但我使用的是 php SDK,正确的发送方式是这种形式。在 $data 你需要写你要发送到 NSDictionary 用户信息的东西。

    $data = array("alert" => "Your message", "badge" => "Increment", "sound" => "default");

$query = ParseInstallation::query();
$query->equalTo("deviceToken", $devicetoken);

ParsePush::send(array(
  "where" => $query,
  "data" => $data
));

【讨论】:

确认,您需要指定key“sound”值“default”来播放默认的声音。【参考方案2】:

试试这个:

PFPush *push = [[PFPush alloc] init];
[push setQuery:pushQuery];
NSDictionary *data = @
                       @"badge": @"Increment",
                       @"alert": message,
                       @"sound": @"default"
                       ;
[push setData:data];
[push sendPushInBackground];

【讨论】:

【参考方案3】:

根据我对推送通知的经验,而不是 Parse,在推送有效负载中不包括声音键/值将使推送静音。尝试将具有一些随机值的声音添加到字典中,如下所示并尝试一下。此外,还有一种更好/更简洁的方式来创建 NSDictionary:

NSDictionary *data = @
                       @"badge": @"Increment",
                       @"alert": message,
                       @"sound": @"nothing"
                      ;

【讨论】:

非常感谢 Mike 的回复。不幸的是,这既不会产生声音,也不会更新我的徽章。你会碰巧知道还有什么问题吗? 检查她是否增加了徽章***.com/questions/11153631/…。关于声音,您是否尝试过放入一个测试 .wav 文件并将其放在那里。另外,我知道一个愚蠢的问题,但是手机在振动吗? 是的,我做了这两件事,无论出于何种原因,都没有更新声音或徽章。非常感谢您的帮助。 收到通知了吗? 是的,我收到了通知,但是没有声音也没有徽章。

以上是关于通过 Parse 发送推送通知时没有声音的主要内容,如果未能解决你的问题,请参考以下文章

向 Parse 发送推送通知,如何在设备中接收它

推送通知不适用于通过 Parse.com 发送的 Android 和 iOS 设备

使用 Parse Sdk 从应用推送通知

推送通知在 iphone 中没有收到来自 Parse.com 服务器的某些时间

使用 parse.com 处理应用程序中的推送通知

使用 TestFlight 通过 Parse 推送通知