【问题标题】:Parse saveInBackground when iPhone is locked?iPhone锁定时解析saveInBackground?
【发布时间】:2015-05-01 17:18:06
【问题描述】:

我希望能够在 iOS 设备被锁定时保存用户信息。我正在使用后台模式,但 saveInBackground 似乎只工作了大约 5 秒,然后它停止保存。当重新打开应用程序时,它会一次保存它们。有没有办法让它们在锁定时保存?

谢谢

【问题讨论】:

  • 我遇到了类似的问题。这真的很烦人,但我发现使用 Parse Cloud Code 是可行的方法。因此,不要在应用程序本身中使用 saveInBackground,而是将数据传递给执行保存的 Cloud Code 函数。
  • 感谢您的帮助。您是否有任何可能适合我需要的云代码示例?

标签: ios iphone parse-platform save request


【解决方案1】:

**云代码(JS)**

Parse.Cloud.define("createSale", function(request, response) {
  var SaleClass = Parse.Object.extend("Sale");
  var sale = new SaleClass();
  sale.set("contractorId", request.params.contractorId);
  sale.set("subtotal", request.params.subtotal);
  sale.save(null, {
  success: function (sale) {
                    console.log(responseData);
                    response.success(responseData);
                  },
                  error: function (error) {
                    response.error(error);
                    console.log(error);
                  }
                });
 }); 

共享 ParseCloudFunctions 实例(Obj-C)

我创建了一个包含所有 Parse Cloud 代码函数的类。我创建了这个类的一个共享实例,并有一个调用 Parse Cloud 代码的实例方法:

#import <Parse/Parse.h>

+ (ParseCloudFunctions *) sharedInstance {
    static ParseCloudFunctions *sharedInstance;
     static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        sharedInstance = [[ParseCloudFunctions alloc] init];
    });
    return sharedInstance;
 }

- (void) createSaleWithParameters: (NSDictionary *) parameters block:(void (^)(id object, NSError *error)) block{
    [PFCloud callFunctionInBackground:@"createSale" withParameters:parameters block:block];
}

只要你想调用解析云代码,你就这样做:

 NSDictionary *parameters = @{
                                 @"contratorId":contractorId,
                                 @"subtotal":subtotal,
                                 };

    [[ParseCloudFunctions sharedInstance] createSaleWithParameters:parameters block:^(id object, NSError *error) {
        if(error){
            //Handle Error
        }
        if(object){
            //Do stuff
        }
    }];

保存是在服务器端处理的,所以你只需要一点时间调用云代码就可以了。

【讨论】:

  • 您可以使用 Parse Cloud Code 获取用户位置吗?你看这就是我想要做的。在手机锁定时获取用户位置并将其发送到云端。
  • 您必须让用户始终在后台使用定位服务,而不仅仅是在使用时。当位置发生变化时,将经纬度传递给解析云码函数
猜你喜欢
  • 2015-01-03
  • 2010-10-16
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-28
相关资源
最近更新 更多