【发布时间】:2015-08-05 14:46:41
【问题描述】:
我无法将推送通知定位到单个用户。现在,无论哪个用户登录到设备,我的测试设备都会收到推送通知。即使我向当前已注销的 _User 发送推送并且设备使用完全不同的 _User 登录,它也会收到推送通知。
我已经使用 parse.com 设置了云代码,以便将推送通知发送给用户。我在安装类中有一个“用户”指针,它指向要接收推送通知的相应 _User。
示例:_用户“Sam”登录到移动设备。我从 Xcode 中的 iOS 模拟器向 _User "steve" 发送推送。即使“Sam”已登录,移动设备也会收到推送。即使没有用户登录,它也会收到推送。
当我在解析时检查 Push 控件时,似乎云云正在正确查询安装中与 _User 类的 objectId 匹配的“用户”指针,如下所示:
user advanced operator ($inQuery {"className"=>"_User", "objectId"=>"LJQXaJDzkU"})
SENDING TIME
August 5th, 2015 at 3:01 PM
EXPIRATION
None
FULL TARGET
{
"user": {
"$inQuery": {
"className": "_User",
"objectId": "LJQXaJDzkU"
}
}
}
FULL DATA
这是查询用户并从解析云发送推送的云代码。 recipientUserId 接收到正在接收推送的 _User 的 objectId 字符串。
Parse.Cloud.define("sendPush", function(request, response) {
var senderUser = request.user
var recipientUserId = request.params.recipientId;
var senderUserId = request.params.senderId;
var message = senderUserId + " sent a message"
var recipientUser = new Parse.User();
recipientUser.id = recipientUserId;
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.matchesQuery('user', recipientUser);
Parse.Push.send ({
where: pushQuery,
data: {
aps: {
alert: message,
badge: "Increment",
sound: "cow-moo1.wav"
}
}
}, {
success: function() {
response.success("Success!");
},
error: function(error) {
response.error(error);
}
});
});
推送发送没有问题,我可以在设备上打开它们,但我真的不知道为什么推送被发送到设备,即使查询的用户甚至没有登录到设备。任何关于正在发生的事情的想法将不胜感激。谢谢!!!
【问题讨论】:
标签: ios json parse-platform push-notification parse-cloud-code