In Android project all fine but in IOS FDeviceToken always empty.
Where could be the problem?
- Code: Select all
#include <System.PushNotification.hpp>
//***
private: // User declarations
String FDeviceID;
String FDeviceToken;
TPushService * FPushService;
TPushServiceConnection * FPushServiceConnection;
void __fastcall OnReceiveNotificationEvent(TObject *Sender, TPushServiceNotification* const ANotification);
void __fastcall OnServiceConnectionChange(TObject *Sender, TPushService::TChanges AChange);
void __fastcall PushServiceRegister();
void __fastcall RegisterDevice();
- Code: Select all
#if defined(__APPLE__) && (defined(__arm__) || defined(__arm64__))
#include <FMX.PushNotification.IOS.hpp>
namespace Fmx {
namespace Pushnotification {
namespace Ios {
_INIT_UNIT(Fmx_Pushnotification_Ios);
}
}
}
#endif
__fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner)
{
PushServiceRegister();
}
void __fastcall TForm1::PushServiceRegister()
{
FPushService = nullptr;
FPushServiceConnection = nullptr;
#if defined(__ANDROID__)
FPushService = TPushServiceManager::Instance->GetServiceByName(TPushService_TServiceNames_GCM);
if(FPushService)
FPushService->AppProps[TPushService_TAppPropNames_GCMAppID] = FAndroidServerKey;
#endif
#if defined(__APPLE__) && (defined(__arm__) || defined(__arm64__))
FPushService = TPushServiceManager::Instance->GetServiceByName(TPushService_TServiceNames_APS);
#endif
if(FPushService)
{
FPushServiceConnection = new TPushServiceConnection(FPushService);
FPushServiceConnection->OnChange = &OnServiceConnectionChange;
FPushServiceConnection->OnReceiveNotification = &OnReceiveNotificationEvent;
FPushServiceConnection->Active = true;
FDeviceID = FPushService->DeviceIDValue[TPushService_TDeviceIDNames_DeviceID];// OK!
FDeviceToken = FPushService->DeviceTokenValue[TPushService_TDeviceTokenNames_DeviceToken];//Problem in IOS!
if(FDeviceID != "" && FDeviceToken != "")
{
RegisterDevice();
}
}
}