我正在构建一个应用程序,用户必须在收到本地通知后的5分钟内完成任务。如果任务完成则没有任何反应,但如果任务没有完成,那么我需要运行解析云代码功能。
我的问题是,如果用户没有与本地通知进行交互,我需要执行解析云功能。但是由于iOS挑剔的背景模式和多任务处理规则,我在尝试这样做时遇到了很多困难。
到目前为止,我的应用效果很好,但如果操作没有完成且用户不在应用中,我就无法执行我的代码。
如果有人能指出我正确的方向,我会非常感激。如果您需要更多详情,请告诉我!
Cloud Code - 如果用户在收到本地通知后的五分钟内未完成任务,我想执行的云代码:
Parse.Cloud.define("chargeCustomer", function(request, response) {
Stripe.Charges.create({
amount: request.params['amount'],
currency: "usd",
customer: request.params['customerId']
}, {
success: function(customer) {
response.success(charge.id);
},
error: function(error) {
response.error("Error:" +error);
}
})
});
谢谢!
答案 0 :(得分:1)
您是否考虑过使用Cloud Code运行作业?
假设您创建了一个名为" PushNotification"的新类。假设您将一个布尔列/属性添加到名为" handling"的类中。
当用户获取并查看PUSH通知时,您可以更新" PushNotification"对应于该PUSH通知并设置"处理"到是/是。
您可以编写一个每X分钟运行一次的简单作业。它可能看起来像这样:
Parse.Cloud.job("checkPushes", function (request, status) {
var PushNotification = Parse.Object.extend("pushNotification");
var query = new Parse.Query(PushNotification);
// Limit the query to objects created more than 5 minutes ago
query.lessThan("createdAt", new Date(new Date().getTime() - (1000 * 60 * 5)));
// Limit the query to objects where "actionPerformed" not equal to "true"
query.notEqualTo("handled", true);
query.each(function (pushNotification) {
// Don't forget to set "handled" to true so
// the same items don't keep popping up...
});
});
您可以找到有关Cloud Code(特别是后台工作)here的更多信息。