我在目标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
解决方案很简单...
需要更改
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