Parse.com - 为单个用户设置推送通知

Posted

技术标签:

【中文标题】Parse.com - 为单个用户设置推送通知【英文标题】:Parse.com - setting up push notifications for single users 【发布时间】:2015-06-08 08:31:08 【问题描述】:

我正在开发一个使用 Ionic 框架和 Parse 作为后端的混合应用程序,我正在努力为单个用户设置推送通知。我正在通过 Parse 的 Cloud Code 发送通知,并且我已经使用以下方法向所有正常工作的用户发送推送通知;

Parse.Cloud.afterSave(
    '_User',
    function(request, response) 
        Parse.Cloud.useMasterKey();
        var installationQuery = new Parse.Query(Parse.Installation);

        Parse.Push.send(
            
                where: installationQuery,
                data: 
                    alert: 'Test notification'
                
            , 
                success: function () 
                    // Push was successful
                ,
                error: function (error) 
                    // Push failed
                
            
        );
    
);

目前,当用户注册时,会在安装类中创建一个条目(使用phonegap-parse-plugin),将其用户 ID 添加为通道。我这样做的目的是在确定将通知推送到哪些用户时将通道添加为查询约束,但在上面添加query.contains('channels', 'user-' + request.user.id); 不会推送任何通知(但在 Cloud Code 中报告成功)。

我还阅读了有关将用户添加为指向安装类的指针的信息,但这意味着设备只能有一个用户。

允许我通过 Cloud Code 向单个用户发送推送通知的最佳方式是什么?谢谢!

【问题讨论】:

【参考方案1】:

你能在添加约束的地方看到安装查询的结果吗?

query.contains('channels', 'user-' + request.user.id);

问题可能是空结果。核实。单推单个目标的建议之一就是使用用户 ID。将用户 id 保存在安装表中,并根据查询约束发送推送通知。希望这会有所帮助。

问候。

【讨论】:

Ack,是的,结果集只是空的,这是执行顺序问题。我正在测试用户注册并在 _User 类上使用 afterSave 挂钩,但安装是在用户(因为需要 ID)。最后一个查询使用一个包含 1 个或多个 ID 的数组,使用 installationQuery.containedIn('channels', userIds);。谢谢!

以上是关于Parse.com - 为单个用户设置推送通知的主要内容,如果未能解决你的问题,请参考以下文章

解析,如何向目标用户发送推送通知

parse.com 上的 Apple 推送通知

Parse.com - 从 Parse.com 向 iOS 应用程序发送消息,不像推送通知

使用 Parse.com 安排 iOS 推送通知

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

无法为推送通知注册设备 (iOS8)