У меня есть старое приложение в объективе C, использующее облачный код для отправки толчков на платформу 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 - Функция облачного ранга pu sh для пользователя не определена с: Input: {"channel": ["VermasMto"], "data": {"alert": "VermasMto Test Invio 2020-03-02 01:14:52 +0000 "}} Результат:" Отправлено !! "
Я пытался преобразовать программу в быстрый код, чтобы отправить pu sh is:
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 - Запускаю облачную функцию pu sh для пользователя, неопределенного с: Input: {" channel ":" NavFtpYM "," data ": {" alert ":" NavFtpYM Test invio "}} Результат:" Отправлено !! "
2020-03-02T01: 17: 25.504Z - Невозможно количество установок для PushStatus hm5hbCzDvd: плохое значение $ *
Сравнивая информацию, показанную на приборной панели, я вижу разницу во входных данных
в объективных C (работающих) входных данных канала, имеющих квадрат скобка:
Ввод: {"channel": ["VermasMto"],
, в то время как при отправке из swift они не имеют
Ввод: {"channel": "NavFtpYM ",
, конечно, я неправильно вызываю метод PFCloud.callFunction.
Есть предложения?
Fabrizio