通过 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.com 发送的 Android 和 iOS 设备