Parse和Swift:如何在没有用户的情况下使用预先定位推送到特定设备?

时间:2015-09-11 20:34:55

标签: ios swift parse-platform

我目前正在创建一个应用,用户可以在不登录应用或使用任何凭据的情况下添加帖子。

该应用的其他用户可以打开应用并直接评论帖子(评论是帖子对象的数组)。

我阅读了解析文档,我相信这会使用预先定位。我看到PFInstallation.currentInstallation()用于高级定位,但我认为这是基于用户类而我没有使用Parse.com用户类

我想做的是在帖子中添加评论时向原始海报发送推送通知...... 所以,我想知道如何完成这个?< / p>

谢谢!

3 个答案:

答案 0 :(得分:1)

这不容易,

安装有一个&#34;用户&#34;柱。只需创建一个与&#34; user&#34;匹配的查询出于兴趣。所以,你的代码看起来像这样......

if ( .. comment made, need to send a push .. ) 
    {
    console.log(">>> 'comment' was added....");

    var query = new Parse.Query(Parse.Installation);
    query.equalTo('user', .. whoWroteThePost .. );
    alert = "Wow! You have a new comment on a post you wrote!!!";
    Parse.Push.send(
        {
        where:query,
        data:{ alert: alert, badge: "Increment" }
        });
    return;
    }

请注意,你说......

&#34;我想做的是在将评论添加到帖子中时向原始海报发送推送通知......&#34;

在那句话中,你说的是原始海报&#34;。所以,这将是一个像originalPoster一样的变量。所以这行代码

    query.equalTo('user', .. whoWroteThePost .. );

将是

    query.equalTo('user', originalPoster );

请注意,这是非常常见的,您可以在网上找到无数的例子!这里只有一个:example

请注意:

Parse的术语&#34;高级定位&#34;非常混乱。

用另一种方式表达同样的想法,

Parse&#39;频道&#39;只是愚蠢,忽略它们。

也就是说,简单地忽略&#34;频道&#34;胡说八道,只搜索用户。它比渠道业务更容易,更容易混淆,这只是你需要填写的额外领域。

这只是关于Parse的一些奇怪的事情。

我从未使用过&#34;非高级定位&#34; - 这是愚蠢而毫无意义的。并且&#34;高级&#34;定位是微不足道的:假设你可以写所有你可以做的云代码&#34;高级&#34;定位。如果您可以在云代码中编写查询,则可以执行&#34; advanced&#34;定位。

基本上,

    query.equalTo('user', .. whoWroteThePost .. );

请注意,当然,您可能需要先查找撰写帖子的人,然后从那里开始查询推送。

注意,在此过程中它会:

如果用户是匿名的,则完全没有区别。

你可以而且应该以同样的方式继续发送推送。

答案 1 :(得分:0)

未针对用户进行高级定位。这只是展示示例的最简单方法。

您需要针对要推送到的对象存储安装。因此,在这种情况下,将安装存储在帖子中。然后,当评论出现时,您可以向与其相关的帖子相关的安装发送通知。

答案 2 :(得分:0)

我认为你正在寻找一种叫做匿名用户的东西。没有用户数据几乎不可能发送通知。但是,Parse.com提供了一些称为匿名用户的东西,因此无需注册应用用户即可完全运行与用户相关的操作。

然后,您需要存储一些信息才能找到目标。

Parse.com Anonymous Users