Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi 10.4 : Android FCM PushNotifications (https://www.delphipraxis.net/205513-10-4-android-fcm-pushnotifications.html)

MyRealName 18. Sep 2020 09:00

10.4 : Android FCM PushNotifications
 
Ich probiere gerade mit denen rum, weil ich nur eine alte FCM Implementierung noch habe von Delphi 10.2, wo man viel handisch machen musste noch. Delphi hat da jetzt ja wohl einiges angepasst.
ich bin jetzt diesen Schritten gefolgt, es compiliert, aber dann crasht es bzw. bleibt hängen (mal so, mal so)

Code:
procedure THeaderFooterForm.InitPushNotifications;
var
  PushService: TPushService;
  ServiceConnection: TPushServiceConnection;
  Notifications: TArray<TPushServiceNotification>;
begin
  PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM); // <- PushService ist nil nach dem Aufruf
  ServiceConnection := TPushServiceConnection.Create(PushService);                              // <- wird mit nil pointer erstellt, beim active setzen greift er drauf zu
  ServiceConnection.Active := True;                                                             // <- hier hängt es
  ServiceConnection.OnChange := OnServiceConnectionChange;
  ServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;

  FDeviceId := PushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceId];
  Memo.Lines.Add('DeviceID: ' + FDeviceId);
  Memo.Lines.Add('Ready to receive!');

  // Checks notification on startup, if application was launched from cold start
  // by tapping on Notification in Notification Center
  Notifications := PushService.StartupNotifications;
  if Length(Notifications) > 0 then
  begin
    Memo.Lines.Add('-----------------------------------------');
    Memo.Lines.Add('DataKey = ' + Notifications[0].DataKey);
    Memo.Lines.Add('Json = ' + Notifications[0].Json.ToString);
    Memo.Lines.Add('DataObject = ' + Notifications[0].DataObject.ToString);
    Memo.Lines.Add('-----------------------------------------');
  end;
end;
Ich habe in den Projekt-Optionen -> Application -> Entitlement List eingestellt, dass ich Push-Nachrichten bekommen möchte, habe auch das JSON file importiert, welches google mir generiert hat.
Trotzdem bleibt PushService nach dem dem Aufruf von TPushServiceManager.Instance.GetServiceByName(TPus hService.TServiceNames.GCM) nil.
Langsam gehen mit die Ideen aus

Habt Ihr welche ?

MyRealName 21. Sep 2020 09:27

AW: 10.4 : Android FCM PushNotifications
 
Ich hab es übrigends rausgefunden. Man muss die beiden units FMX.PushNotification.Android und AndroidAPI.JNI.Firebase zum uses hinzufügen, dann geht es.
Leider wird das aber nirgends in der Anleitung erwähnt.

MyRealName 21. Sep 2020 10:16

AW: 10.4 : Android FCM PushNotifications
 
Noch einen 2. Fehler gefunden : Die Anleitung ist für Rio (in der von Sysdney ist alles ok) und man redet von Firebase Cloud Messaging (FCM) wird in der Wiki der GCM Service gesucht bei

Code:
PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
es sollte so aussehen

Code:
PushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.FCM);


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz