unit global; interface uses System.Classes, IdHTTP, SysUtils, FMX.Notification; /// /// Процедура регистрации устройства. /// /// /// ID регистрируемого устройства /// /// /// Токен регистрируемого устройства /// procedure RegisterDevice(DeviceID : string; DeviceToken : string); /// /// Процедура отправки Push сообщения на сервер. /// /// /// Текст отправляемого сообщения /// procedure SendPush(MessageText : string); /// /// Процедура вывода сообщения из приложения. /// /// /// Текст выводимого сообщения /// /// /// Число выводимое на иконку приложения /// procedure ShowNotification(MessageText : string; BadgeNumber : integer); const // Доменное имя сайта DOMAIN: string = 'http://example.ru/'; implementation procedure RegisterDevice(DeviceID : string; DeviceToken : string); var // Данные для передачи скрипту postdata: TStringList; // Подключение для передачи данных httpconnect : TIdHTTP; begin try // Создаём подключение httpconnect := TIdHTTP.Create; // Указываем данные для отправки postdata := TStringList.Create; postdata.Add('action=register-device'); postdata.Add('did=' + DeviceID); postdata.Add('token=' + DeviceToken); {$ifdef ANDROID} postdata.Add('platform=android'); {$else} postdata.Add('platform=ios'); {$endif} // Отправляем запрос httpconnect.Post(DOMAIN + 'push.php', postdata); finally // Отключаемся и освобождаем память httpconnect.Disconnect; httpconnect.DisposeOf; end; end; procedure SendPush(MessageText : string); var // Данные для передачи скрипту postdata: TStringList; // Подключение для передачи данных httpconnect : TIdHTTP; begin try // Создаём подключение httpconnect := TIdHTTP.Create; // Указываем данные для отправки postdata := TStringList.Create; postdata.Add('action=send-push'); postdata.Add('text=' + MessageText); // Отправляем запрос httpconnect.Post(DOMAIN + 'push.php', postdata); finally // Отключаемся и освобождаем память httpconnect.Disconnect; httpconnect.DisposeOf; end; end; procedure ShowNotification(MessageText : string; BadgeNumber : integer); var NotificationC: TNotificationCenter; Notification: TNotification; begin // Создаём центр уведомлений и уведомление для отправки NotificationC := TNotificationCenter.Create(nil); Notification := NotificationC.CreateNotification; try // Если центр уведомлений поддерживается системой if NotificationC.Supported then begin // Устанавливаем текст сообщения Notification.AlertBody := MessageText; // Включаем звук при выводе сообщение Notification.EnableSound := true; // Устанавливаем цифру на иконке приложения Notification.Number := BadgeNumber; NotificationC.ApplicationIconBadgeNumber := BadgeNumber; // Выводим сообщение из приложения NotificationC.PresentNotification(Notification); end; finally // Очищаем переменные Notification.DisposeOf; NotificationC.Free; NotificationC.DisposeOf; end; end; end.