Hello Backendless,
I was wondering about the Use of SetPushSingleCast() function in Messaging API . Let’s put a Use case in play here. Suppose I have a Channel A with 1000 Registered Device on the Channel named Device 1 , Device 2 , …Device 1000
When I Publish a Message in the Channel , the Message will be Broadcasted to those 1000 Devices.
But, I want to Achieve Same Thing by Using this type of Code :
List<String>recieversList=new ArrayList<String>();
//recieversList is somehow populated with Valid device Id's
DeliveryOptions dov=new DeliveryOptions();
dov.setPushSingleCast(recieversList);
Backendless.Messaging.Publish((Object)"Message",publishOptions,dov);
I was just Wondering if the below Code Would allow me to Achieve the same Using “Default” Channel
Regards,
Pujan Paudel
Hi Pujan,
Yes, it would result in the same behavior - the message is delivered to the specific devices identified in the request.
Regards,
Mark
Hi Mark
I have a problem with Android phones using setPushSingleCast send to all the channel to filter could be possible?
func sendNotification(deviceIdList: [String]) {
print("sendNotification INIT: ", deviceIdList )
let publishOptions = PublishOptions()
publishOptions.setHeaders(headers:
["android-ticker-text": "Targett Acceso - Autorizaciones",
"android-content-title": "Autorización Pendiente",
"android-content-text": "Destino: " + self.nameDestino,
"ios-alert": "OtorgarAutorizacion",
"ios-badge": 1,
"ios-sound": "ring.wav",
"metodo": "OtorgarAutorizacion",
"mag_objectId": self.autorizacionObjectId
])
let deliveryOptions = DeliveryOptions()
deliveryOptions.setPushSinglecast(singlecast: deviceIdList)
Backendless.shared.messaging.publish(channelName: "default",
message: "Destino: " + self.nameDestino,
publishOptions: publishOptions,
deliveryOptions: deliveryOptions,
responseHandler: { messageStatus in
print("Message status: \(messageStatus)")
print("Mensaje PUSH enviado")
}, errorHandler: { fault in
print("Error: \(fault.message ?? "")")
AlertViewController.sharedInstance.showErrorAlert(fault, self)
})
}
The Log it’s only this deviceId:
sendNotification INIT: [“abc3d5c9b08b8b0e”]
Thanks, Mario
Solved the problem was not check if deviceIdList become empty!
Thanks, Mario