Apple Push Notifications - registreer je app (deel 1/4)

· Functies

De sgcWebSockets-bibliotheek ondersteunt HTTP/2-protocol in zowel server- als clientcomponenten. Apple Push Notifications staat alleen toe om Push Notifications te versturen vanaf een Server Provider via HTTP/2-protocol. In de volgende artikelen laat ik zien hoe je pushmeldingen verstuurt met de sgcWebSockets-bibliotheek.

De Server Provider (die de pushmeldingen naar de apparaten van gebruikers stuurt) moet weten naar welk device token de berichten worden bezorgd. Een Device Token is een unieke identifier die hoort bij een apparaat en toepassing. 

Met Rad Studio kun je het device token-id ophalen met de unit FMX.PushNotification.iOS. Het concept is vrij eenvoudig: het apparaat opent een nieuwe verbinding naar de Apple-servers en ontvangt een DeviceToken dat de Server Provider gebruikt om meldingen te versturen. Hieronder vind je voorbeeldcode voor Delphi waarmee je het Device Token kunt opvragen.

Delphi-code 

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;