解析iOS - 在特定时间发送推送通知

时间:2015-11-19 18:31:31

标签: ios objective-c parse-platform

我的应用程序的一部分当前允许用户使用UIDatePicker安排约会。他们按下一个按钮,我的后端用日期来处理约会数据,然后我使用以下代码发送推送:

NSString *objectID = [NSString stringWithFormat:@"user_%lu", (unsigned long)self.salespersonObject.userID];

PFPush *push = [PFPush new];
[push setChannel:[NSString stringWithFormat:@"%@",objectID]];

NSString *message1 = [NSString stringWithFormat:@"%@ sent you an appointment request. Visit your profile in the app to confirm", self.currentUser.fullName];

NSDictionary *data = [NSDictionary dictionaryWithObjectsAndKeys:
                                  message1, @"alert",
                                  @"Increment", @"badge",@"default",@"sound",
                                  nil];

[push setData: data];
[push sendPushInBackground];

我想知道......有什么方法可以使用Parse iOS SDK来设置推送的特定时间吗?我还希望在这种方法中添加一个推送,在UIDatePicker日期前1小时发送,表示类似"提醒您与x约会的时间是1小时"

提前致谢!

3 个答案:

答案 0 :(得分:1)

来自Parse Doc:

  

目前不支持发送计划推送通知   iOS或OS X SDK。看一下REST API,JavaScript SDK或者   Parse.com推送控制台。

最好的做法是使用Cloud Code,因此您可以触发(afterSave,afterDelete)或从iOS应用程序调用的功能。 由于CloudCode使用Javascript SDK,您可以制作类似的内容:

var tomorrowDate = new Date(...);

var query = new Parse.Query(Parse.Installation);
query.equalTo('user_id', 'user_123');

Parse.Push.send({
  where: query,
  data: {
    alert: "You previously created a reminder for the game today" 
  },
  push_time: tomorrowDate
}, {
  success: function() {
    // Push was successful
  },
  error: function(error) {
    // Handle error
  }
});

Parse Push notification scheduling Guide

答案 1 :(得分:0)

您可以使用解析后台作业来安排推送通知。 以下是documentation

的链接

答案 2 :(得分:0)

使用iPhone SDK和关闭的应用程序,你真的无法做很多事情。

我建议您将推送分配给频道,通常通过Parse.com推送控制台,REST API或Cloud Code发送通知,您也可以通过此媒介分配后台作业。

但如果你想坚持客观C,因为你不提及任何其他语言;您可以本地发送Local Push Notifications但不能通过PARSE SDK发送。