Push -уведомление с использованием Embarcadero Rad Studio Tokyo 10.2.3 на устройствах Android и Apple, написанных в C ++ и Delphi.
Этот проект основан на коде C ++ и коде Delphi. Основное ядро приложение должно быть разработано в C ++ с использованием кода Delphi в качестве отдельных единиц для достижения результата. Этот документ посвящен всем, кто изо всех сил старался сделать свое собственное уведомление о Push с использованием Embarcadero Rad Studio, и он проверяется на версии Tokyo 10.2.3 с Android SM-520 (Galaxy A5) и iPhone X (iOS 11.4.1)
_File необходимо:
• Дельфи
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
Android. Чтобы отправить push -уведомления на Android, вам необходимо создать учетную запись обмена обломками Firebase и использование консоли (вход в систему), вам необходимо создать свое собственное приложение, и назначить ему идентификатор приложения, который должен быть одинаковым в окончательном приложении (Ex. Com.duolabs.mypushapp) ios. На iOS вам необходимо создать сертификат Push на сайте Apple Developers, который позволяет отправлять уведомления Push в конкретное приложение в том же диапазоне домена приложения (Ex. Com.duolabs.mypushapp) уведомлений для Android, которые должны иметь учетную запись FCM, и уведомление для Apple должно иметь аппетитный и толчок. Мы собираемся отправлять push -сообщения, используя два сценария .php, один для Android и один для iOS.
Маленькое объяснение кода.
C ++ Код:
Функции:
bool __fastcall checkinet ();
_ Проверки, если подключение к Интернету доступно. Не так интересно.
void __fastcall tform1 :: resendrequestbutclick (tobject *sender) _requests для приложения для мобильного устройства, которое будет зарегистрировано через FCM до FCM и APN -серверов и триггера, один раз накапливаемое время для получения токена. Токен получен:
Переменные:
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 *Sender, tpushService :: changes achange)
_ Когда получен токен. Токен Android получен в формате FCM (длинная строка), а токен Apple возвращается в шестнадцатеричном формате (32 байта). Значение токена Apple передается от Delphi к C ++ с использованием «String apnstoken», объявленного в sharedvariables.pas
void __fastcall tform1 :: resendrequestbutclick (tobject *sender)
_Requests для приложения для мобильного устройства будет зарегистрировано через FCM для FCM и APN -серверов и триггеров функция:
void __fastcall tform1 :: onreceivenotificationEvent ( отправитель Tobject, TpushServiceNotification const anotification)
_ Эта функция триггеры при получении уведомления
• Идентификатор устройства остается одинаковым на каждом устройстве и отправляется в APN или FCM, чтобы получить токен для удаленного уведомления. Токен меняется каждый раз, когда приложение установлено (свежая установка). Если вы зарегистрируетесь на DB, токен не забудьте обновить и проверять его каждый раз, когда мобильное приложение начинается, так как он мог измениться из-за повторной установки приложения (Remove-> Установить).
• Это приложение C ++ основано на исходном коде Delphi (кредиты Dave Nottage@ delphi World). Теплый спасибо и мои признательность Дэйву Ноттаге за его время и терпение, это оправдало мне! Не забудьте взглянуть на его потрясающий сайт для любителей Delphi !!
• Хорошее руководство для регистрации APN можно найти здесь: https://www.raywenderlich.com/584-push-notifications-tutorial-getting-started
• Мы решили не избегать FCM SDK, чтобы избежать факта, что он привязан к услугам Google, которые являются и остаются отличными, но имея больший контроль над Push -уведомлением, дает разработчику свободно действовать так, как он хочет.
Получайте удовольствие и наслаждайтесь. Любые отзывы будут очень оценены. Риккардо Алесси