Push Notification utilisant Embarcadero Rad Studio Tokyo 10.2.3 sur Android et Apple Devices écrits en C ++ et Delphi.
Ce projet est basé sur le code C ++ et le code Delphi. L'application principale principale est destinée à être développée en C ++ en utilisant le code Delphi en tant qu'unités distinctes à accomplir au résultat. Ce document est dédié à tous ceux qui ont essayé de faire leur propre notification push à l'aide d'Embarcadero Rad Studio et il est testé sur la version Tokyo 10.2.3 avec un Android SM-520 (Galaxy A5) et iPhone X (iOS 11.4.1)
_File nécessaire:
• Delphi
Dw.iosapi. usernotifications.pas dw.iosapi. usernotifications.hpp
DW.RemotenotificationsPatch.ios.pas DW.RemotenotificationsPatch.ios.hpp
Dw.pushclient.pas dw.pushclient.hpp
Dw.registerfcm.pas dw.registerfcm.hpp
Sharedvariables.pas sharedvariables.hpp
• C ++
UNIT1.CPP UNIT1.H
Androïde. Pour envoyer des notifications push sur Android, vous devez créer un compte de messagerie Cloud Firebase et en utilisant la console (connexion), vous devez créer votre propre application et lui attribuer un identifiant d'application qui doit être le même sur l'application finale (ex. Com.duolabs.mypushapp) iOS. Sur iOS, vous devez créer un certificat push sur le site de développeurs Apple qui vous permet d'envoyer des notifications push à une application spécifique dans la même gamme de notifications de domaine d'application (ex. Com.duolabs.mypushapp) pour Android doit avoir un compte FCM et une notification pour Apple doit avoir un Appid et un CERIRIFFATE PUSH. Nous allons envoyer des messages push à l'aide de deux scripts .php, un pour Android et un pour iOS.
Little Code Explication.
Code C ++:
Fonctions:
bool __fastCall Checkinet ();
_Checks si la connexion Internet est disponible. Pas si intéressant.
void __fastCall tform1 :: resendRequestButClick (tobject * expéditeur) _Requests pour l'application de l'appareil mobile à enregistrer via FCM vers les serveurs FCM et APN et déclenche une fonction une fois sur leCreceConnectionChange. Le jeton est reçu:
Variables:
String ServerAppID = L"8189xxxxxxxxx";
FPushClient->GCMAppID = ServerAppID;
FPushClient->ServerKey = L"AAAAxxxxxxx";
FPushClient->BundleID = L"com.duolabs.mypushapp";
FPushClient->UseSandbox = true;
FPushClient->OnChange = &OnServiceConnectionChange;
FPushClient->OnReceiveNotification = &OnReceiveNotificationEvent;
FPushClient->Active = true;
void __fastCall tform1 :: onserviceConnectionChange (tobject * expéditeur, tpushService :: tchanges achange)
_ Quand un jeton est reçu. Le jeton Android est reçu au format FCM (chaîne longue) et le jeton Apple est renvoyé au format hexadécimal (32bytes). La valeur de jeton Apple est passée de Delphi à C ++ en utilisant «String ApnStoken» déclaré dans SharedVariables.pas
void __fastCall tform1 :: resendRequestButClick (tobject * expéditeur)
_Requests pour l'application de périphérique mobile à enregistrer via FCM vers les serveurs FCM et APN et les déclencheurs de la fonction:
void __fastCall tform1 :: onreceivenotificationevent ( expéditeur de tobject, tpushservicenotification const anotification)
_Ce fonction déclenche lorsqu'un message de notification est reçu
• L'ID de périphérique reste le même sur chaque appareil et est envoyé à APN ou FCM pour obtenir un jeton pour une notification push à distance. Le jeton change chaque fois que l'application est installée (nouvelle installation). Si vous vous inscrivez sur une base de données, le jeton n'oubliez pas de mettre à jour et de le vérifier chaque fois que l'application mobile démarre car elle peut avoir changé en raison d'une réinstallation de l'application (Supprimer-> Installer).
• Cette application C ++ est basée sur le code source Delphi (crédits à Dave Nottage @ Delphi World). Un merci chaleureux et mes appréciations à Dave Notage pour son temps et sa patience, cela m'a payé! N'oubliez pas de jeter un œil à son site Web génial pour les amateurs de Delphi !!
• Un bon guide pour l'inscription APN peut être trouvé ici: https://www.raywenderlich.com/584-push--notifications-tutorial-getting-started
• Nous avons décidé de ne pas éviter le SDK FCM pour éviter le fait d'être lié aux services de Google qui sont et restent formidables, mais avoir plus de contrôle sur la notification push met le développeur libre d'agir comme il le souhaite.
Amusez-vous et profitez. Tout commentaire sera très apprécié. Riccardo Alessi