【问题标题】:Parse Cloud Code Push Notifications解析云代码推送通知
【发布时间】:2015-08-28 01:04:40
【问题描述】:

我有一个“Storybaord”类,并且有两个何时发送推送通知的实例。

  1. 用户喜欢帖子 - [postObject addUniqueObject: [PFUser currentUser] forKey:@"likes"];

  2. 一个用户在一个帖子中遇到了 - [postObject addUniqueObject: self.comment forKey:@"comments"];

在我的云代码中,我使用Parse.Cloud.afterSave,但我不确定如何区分两者,也不确定它们是否会发生,因为还有其他场合可以保存postObject 而无需发送推送。

云代码:

Parse.Cloud.afterSave("Storyboard", function(request){
    var user = Parse.User.current();
    var postUser = request.object.get('userId');

    var pushQuery = new Parse.Query(Parse.Installation);
    pushQuery.equalTo ('userId', postUser);

    Parse.Push.send({
            where: pushQuery,
            data: {
                alert: "Liked Your Post"
                }
                    }, {
                    success: function(){

                    },
                    error: function(){

                    }
            });
    });

【问题讨论】:

  • 那么您使用客户端代码执行对象更新但使用云代码发送推送?您将必须判断客户端是使用推送参数执行云功能还是简单地推送通知客户端。无论哪种方式都在postObject 客户端内完成。您想要客户端的示例答案,还是对云推送一无所知?
  • @soulshined 好吧,现在推送通知是在客户端发送的,但据我所知,这是一个安全问题。所以,我正在尝试切换到云代码来发送推送通知。
  • 那么,当用户喜欢postObject时创建一个云代码函数,如果成功保存,发送推送。然后为评论创建一个单独的云代码函数并在该函数中发送推送。基本上就像你会客户端一样。当条件语句都可以在响应或回调中处理时,没有理由创建条件语句
  • @soulshined 是的,明白了。这就是我想要做的,但这是我第一次编写云代码,我很困惑要调用什么来区分哪个是哪个。
  • @soulshine 用Parse.Op.AddUnique()?

标签: ios parse-platform push-notification


【解决方案1】:

如果您坚持通过云代码发送推送,您所要做的就是在客户端设置一个条件语句并采取相应的行动,这样您就可以根据需要选择发送或不发送,因为您提到了一些关于选择性发送推送:

if (self.likeButton.isSelected) {
    [PFCloud callFunctionInBackground:@"alertAuthor" withParameters:@{@"message", [NSString stringWithFormat:@"%@ liked your post!", [PFUser currentUser].username]}
} 

if (self.commentEntered) {
    [PFCloud callFunctionInBackground:@"alertAuthor" withParameters:@{@"message", [NSString stringWithFormat:@"%@ commented on your post!", [PFUser currentUser].username]}
}

并且只需通过云代码使用参数发送推送:

Parse.Cloud.define("alertAuthor", function(request,response){
  var query = new Parse.Query(Parse.User);
  var message = request.params.message;
  query.equalTo('username', 'postUser');

  Parse.Push.send({
    where: query,
    data : { 
      alert: message,
      badge: "Increment",
      sound: "",
    }
    }, {
    success: function() {
    //Success
    },
    error: function(error) {
    //Oops
    }
  });
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多