繁体   English   中英

解析云代码推送通知

[英]Parse Cloud Code Push Notifications

我有一个“ 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(){

                    }
            });
    });

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

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
    }
  });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM