IOS SWIFT PARSE:Pfcloud.callFunction

问题描述 投票:0回答:1

我在目标C中有一个旧应用,使用cloudcode将推送发送到back4app平台。

应用程序设法正确发送推送,这是代码:

- (IBAction)inviaPush:(UIButton *)sender {
   NSString *canale;
   for (int i=0; i<=4; i++) {
       switch (i) {
           case 0:canale=@"TraduzioniEDI";
               break;
           case 1:canale=@"NavFtpYM";
               break;
           case 2:canale=@"InvioMailFTP";
               break;
           case 3:canale=@"VermasMto";
               break;
           case 4:canale=@"EdiAltova";
               break;
           default:
                break;
       }
       NSString *testoPush =[NSString stringWithFormat:@"%@ Test Invio %@",  canale,[NSDate date]];
        [PFCloud callFunctionInBackground:@"push"
                          withParameters:@{@"channels": @[canale], @"data": @{@"alert": testoPush,@"badge":@"Increment"}}
                                   block:^( NSString *result, NSError *error) {
                                       if (!error) {
                                           NSLog(@"Risultato: %@",result);
                                       } else{
                                           NSLog(@"Errore %@",error);
                                       }
                                   }];
   }
}

运行代码,我收到5次推送,在back4app仪表板的信息中,我找到了:

2020-03-02T01:14:53.533Z-未定义用户的跑云功能推送,其使用:输入:{“ channels”:[“ VermasMto”],“ data”:{“ alert”:“ VermasMto Test Invio 2020-03-02 01:14:52 +0000”}}结果:“已发送!”

我试图迅速转换程序发送推送的代码是:

func inviaPush (){
   var canale :String = ""
   for i in 0...4
   {
       switch i {
       case 0: canale = "TraduzioniEDI"
       case 1: canale = "NavFtpYM"
       case 2: canale = "InvioMailFTP"
       case 3: canale = "VermasMto"
       case 4: canale = "EdiAltova"
       default: canale=""
       }
       let testoPush = "\(canale) Test invio - Swift"
       PFCloud.callFunction(inBackground: "push", withParameters: ["channels": canale, "data": ["alert": testoPush,"badge":"Increment"]], block: {
            (result: Any?, error: Error?) -> Void in
            if error != nil {
               if let descrip = error?.localizedDescription{
                   print(descrip)
               }
           }else{
               print(result as! String)
           }
        })
   }
}

在这种情况下,我没有收到推送,在信息中,我发现以下内容:2020-03-02T01:17:25.505Z-用户未定义的Ran云功能推送:输入:{“ channels”:“ NavFtpYM”,“ data”:{“ alert”:“ NavFtpYM Test invio”}}结果:“已发送!”

2020-03-02T01:17:25.504Z-无法计算PushStatus hm5hbCzDvd的安装:价值不正确

比较显示板中显示的信息,我发现输入有所不同

在输入C(工作中)的输入通道中有一个方括号:

输入:{“ channels”:[“ VermasMto”],

从迅捷发送时还没有

输入:{“ channels”:“ NavFtpYM”,

肯定我以错误的方式调用方法PFCloud.callFunction。

任何建议?

Fabrizio

parse-platform push-notification back4app
1个回答
0
投票

解决方案很简单...

需要更改

PFCloud.callFunction(inBackground: "push", withParameters: ["channels": canale, "data": ["alert": testoPush,"badge":"Increment"]], block: {

输入

PFCloud.callFunction(inBackground: "push", withParameters: ["channels": [canale], "data": ["alert": testoPush,"badge":"Increment"]], block: {

Fabrizio

© www.soinside.com 2019 - 2024. All rights reserved.