大多数时候,当我尝试进行推送时,没有人会被发送。 推送控制台选项卡中的“推送已发送”字段显示0.尽管存在与查询匹配的安装。当我取消注释以下几行时,安装成功返回。
尝试通过面板手动发送Push时,在设置受众参数时,正在显示正确的收件人数。发送后,再次“推送已发送”显示ZERO。
安装有deviceTokens [iOS]。 这是我的云代码:
var installationQuery = new Parse.Query(Parse.Installation);
var inUserQuery = new Parse.Query(PKUser);
inUserQuery.equalTo("objectId", toUserID);
installationQuery.matchesQuery("user", inUserQuery);
// installationQuery.find({
// success: function(iresults) {
// console.log("inst results");
// console.log(iresults);
// }, error: function(err) {
// console.log("inst error");
// console.log(err);
// }
// });
// sending a push
Parse.Push.send({
where: installationQuery,
data: {
"alert": user.get("firstName")+": "+shortenedMessage,
"badge": "Increment",
"content-available": 1,
"text": message,
"from": user.id,
"id": object.id
}
}, { success: function() {
response.success("ok");
}, error: function(err) {
response.error("push");
}
});
答案 0 :(得分:0)
当尝试仅使用用户ID来查找用户安装时,您应该使用指针对象并将其传递给installationQuery,因为在Parse.User上的equalTo比较了objectId,不需要matchesQuery。如果这不起作用,那么您需要检查您拥有的设备令牌是否对该手机+安装有效,因为设备令牌可以更改(ios 7 device token is different for same device)。
var installationQuery = new Parse.Query(Parse.Installation);
var pointerUser = new Parse.User();
pointerUser.id = toUserID;
installationQuery.equalTo("user",pointerUser);
Parse.Push.send({
where: installationQuery,
data: {
"alert": user.get("firstName")+": "+shortenedMessage,
"badge": "Increment",
"content-available": 1,
"text": message,
"from": user.id,
"id": object.id
}
}).then(function(){
response.success("ok");
},function(){
response.error("push");
});