La librerÃa sgcWebSockets soporta el protocolo HTTP/2 en componentes de servidor y cliente. Apple Push Notifications solo permite enviar Push Notifications desde un Server Provider usando el protocolo HTTP/2, asà que en los siguientes artÃculos te mostraré cómo enviar push notifications usando la librerÃa sgcWebSockets.
El Server Provider (quien envÃa las push notifications a los dispositivos de los usuarios) necesita conocer el device token al que se entregarán los mensajes. Un Device Token es un identificador único asociado a un dispositivo y a una aplicación.
Usando RAD Studio, puedes obtener el device token id mediante la unit FMX.PushNotification.iOS. El concepto es bastante sencillo: el dispositivo abre una nueva conexión con los servidores de Apple y obtiene un DeviceToken que será usado por el Server Provider para enviar notificaciones. A continuación tienes un código de ejemplo para Delphi donde puedes obtener el Device Token.
Código Delphi
oPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS);
oPushConnection := TPushServiceConnection.Create(oPushService);
oPushConnection.Active := True;
oPushConnection.OnChange := OnChangeEvent;
oPushConnection.OnReceiveNotification := OnReceiveNotificationEvent;
vDeviceId := oPushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID];
vDeviceToken := oPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];
procedure OnChangeEvent(Sender: TObject; AChange: TPushService.TChanges);
begin
memoLog.Lines.Add('OnChange');
end;
procedure OnReceiveNotificationEvent(Sender: TObject; const ANotification: TPushServiceNotification);
begin
memoLog.Lines.Add('DataKey=' + ANotification.DataKey);
memoLog.Lines.Add('JSON=' + ANotification.JSON.ToString);
memoLog.Lines.Add('DataObject=' + ANotification.DataObject.ToString);
end;
