如何从本地解析器向用户发送推送通知

时间:2015-03-13 10:26:29

标签: javascript parse-platform push-notification

我想根据不是基于UTC的用户时间发送推送通知。我尝试了push_time:新日期(pushDt)它在上午6点30分(UTC)成功触发,但我想根据用户当地时间触发它。 / p>

Parse.Cloud.job("PushNtfct", function(request, status) {

function dateFormat(date, format) {

    format = format.replace("DD", (date.getDate() < 10 ? '0' : '') + date.getDate());

    format = format.replace("MM", (date.getMonth() < 9 ? '0' : '') + (date.getMonth() + 1));

    format = format.replace("YYYY", date.getFullYear());
    return format;
}
 var todayDt = new Date();
 todayDt.setDate(todayDt.getDate()+1);

 var pushDt = dateFormat(todayDt , "YYYY-MM-DD")+ "T06:30:00";
 Parse.Push.send({
  channels: ["Daily"],
 push_time: new Date(pushDt),
  data: {
     alert: "Daily"
  }
}, { success: function() {
  console.log("Succuss with Time, Local Push notification time was sent at : " + pushDt);
  }, error: function(err) {
    console.log(err);
  }
}).then(function() {
    // Set the job's success status
    status.success("Successfully Ran");
  }, function(error) {
    // Set the job's error status
    status.error("Fuck ..some damn error");
  });
});

1 个答案:

答案 0 :(得分:0)

Installation对象有设备timeZone,它通常是一个字符串,您可以使用moment-timezone库将此字符串解码为合理的UTC +偏移量,您可以将其编码为{{ 1}}您的日期的一部分,以确保您的推送是在用户的当地时间发送的。您"Z"Parse.User的关联方式取决于您。