C ++とDelphiで書かれたAndroidおよびAppleデバイスでEmbarcadero Rad Studio Tokyo 10.2.3を使用した通知をプッシュします。
このプロジェクトは、C ++コードとDelphiコードに基づいています。メインコアアプリケーションは、Delphiコードを個別のユニットとして使用して、結果に達成するためにC ++で開発されることを目的としています。このドキュメントは、Embarcadero Rad Studioを使用して独自のプッシュ通知を作成しようとしたすべての人に捧げられており、Android SM-520(Galaxy A5)とiPhone X(iOS 11.4.1)でバージョンTokyo 10.2.3でテストされています。
_fileが必要:
•Delphi
dw.iosapi.usernotifications.pas dw.iosapi.usernotifications.hpp
dw.remotenotificationspatch.ios.pas dw.remotenotificationspatch.hpp
dw.pushclient.pas dw.pushclient.hpp
dw.registerfcm.pas dw.registerfcm.hpp
sharedvariables.pas sharedvariables.hpp
•C ++
unit1.cpp unit1.h
アンドロイド。 Androidでプッシュ通知を送信するには、Firebase Cloud Messagingアカウントを作成する必要があり、コンソール(ログイン)を使用する必要があります。独自のアプリを作成し、最終アプリケーション(Ex。com.duolabs.mypushapp)iOSで同じでなければならないアプリケーション識別子を割り当てる必要があります。 iOSでは、Apple Developersサイトにプッシュ証明書を作成する必要があります。これにより、AndroidのAndroidの場合の同じ範囲のアプリケーション(Ex。com.duolabs.mypushapp)の通知がFCMアカウントを持つ必要があり、Appleの通知が必要である必要があります。 2つの.phpスクリプトを使用してプッシュメッセージを送信します。1つはAndroid用、もう1つはiOS用です。
コードの説明はほとんどありません。
C ++コード:
関数:
bool __fastcall checkinet();
_インターネット接続が利用可能であるかどうかを確認します。それほど面白くありません。
void __fastcall tform1 :: resendRequestButClick(tobject *sender)_ requests _requests fcmを介してFCMおよびAPNサーバーを介して登録され、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 :: tchanges achange)
_トークンが受信されたとき。 Android TokenはFCM形式(Long String)で受信され、Apple TokenはHEX形式(32bytes)で返されます。アップルトークン値は、「string apnstoken」を使用してdelphiからc ++に渡されます。
void __fastcall tform1 :: ResendRequestButClick(tobject *sender)
_モバイルデバイスアプリケーションがFCMを介してFCMおよびAPNサーバーを介して登録され、トリガー機能を介して登録されます。
void __fastcall tform1 :: onrecevenotificationevent(tobject sender、tpushserviceNotification const Anotification)
_この関数は、通知メッセージが受信されたときにトリガーします
•デバイスIDはすべてのデバイスで同じままであり、APNまたはFCMに送信され、リモートプッシュ通知のトークンを取得します。アプリケーションがインストールされるたびにトークンの変更(新鮮なインストール)。 DBに登録すると、トークンは、アプリケーションの再インストールのために変更された可能性があるため、モバイルアプリケーションが開始されるたびに更新して確認することを忘れないでください(削除 - >インストール)。
•このC ++アプリケーションは、Delphiソースコード(Dave Nottage@ Delphi Worldのクレジット)に基づいています。温かく感謝し、デイブ・ノッテージに感謝します。デルファイ愛好家のための彼の素晴らしいウェブサイトを見ることを忘れないでください!!
•APN登録のための良いガイドは、https://www.raywenderlich.com/584-push-notifications-tutorial-getting-startedをご覧ください。
•FCM SDKを避けて、Googleのサービスに縛られているという事実を避けないことを決めました。Googleのサービスには優れていますが、プッシュ通知をより制御することで、開発者は必要な方法で自由に行動できます。
楽しんで楽しんでください。フィードバックは非常に高く評価されます。リカルド・アレッシ