Перейти к содержанию
Fire Monkey от А до Я
  • 0

iOS Push Notification


Martifan

Вопрос

здравствуйте, я пытаюсь сделать push уведомление на iOS делаю следующим образом:

unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  System.PushNotification, FMX.Controls.Presentation, FMX.StdCtrls,
  FMX.PushNotification.iOS, FMX.ScrollBox, FMX.Memo;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    FDeviceID: string;
    FDeviceToken: string;

    FPushService: TPushService;
    FPushServiceConnection: TPushServiceConnection;
    procedure OnReceiveNotificationEvent(Sender: TObject;
       const ANotification: TPushServiceNotification);
    procedure OnServiceConnectionChange(Sender: TObject;
       AChange: TPushService.TChanges);

  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Button1Click(Sender: TObject);
begin
  FPushService := Nil;
  FPushServiceConnection := Nil;
  FPushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS);
  if Assigned(FPushService) then
    begin
      FPushServiceConnection := TPushServiceConnection.Create(FPushService);
      FPushServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;
      FPushServiceConnection.OnChange := OnServiceConnectionChange;
      FPushServiceConnection.Active := True;
    end else
    Begin
      ShowMessage('False');
    End;
end;

procedure TForm1.OnReceiveNotificationEvent(Sender: TObject;
  const ANotification: TPushServiceNotification);
begin
//  ShowMessage('OnReceiveNotificationEvent');
end;

procedure TForm1.OnServiceConnectionChange(Sender: TObject;
  AChange: TPushService.TChanges);
begin
  Memo1.Lines.Clear;
  if (TPushService.TChange.DeviceToken in AChange) and
       Assigned(FPushServiceConnection) then
     begin
       FDeviceID := FPushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID];
       FDeviceToken := FPushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];
       // save token and ID to  remote db here
       Memo1.Lines.Add('DeviceID: '+FDeviceID);
       Memo1.Lines.Add('DeviceToken: '+FDeviceToken);
     end;
end;

end.

все проходит нормально но получаю значение FDeviceID а значение FDeviceToken пустой все сертификаты установлены правильно и соответственно указана все правильно как я говорил перемен FDeviceID получает значение а

FDeviceToken возвращается пустым на форумах тоже видел такую проблему но может кто то решал эту проблему?

поделитесь пожалуйста
заранее спасибо 

Изменено пользователем Martifan
Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Я разобрался как получить FDeviceToken но когда пытаюсь отправить к себе уведомление получаю ошибку

{
    "multicast_id": 6043277869161850913,
    "success": 0,
    "failure": 1,
    "canonical_ids": 0,
    "results": [
        {
            "error": "InvalidParameters: Failed to decode APNS token: s_{length=32,bytes=0x9658a3f4b737f876f823a1705c1a39a6...dc13415e0a1af7e3}"
        }
    ]
}

может кто то знает в чем проблема? и как исправить? заранее спасибо

Ссылка на комментарий
  • 0
В 01.05.2020 в 15:47, Martifan сказал:

Я разобрался как получить FDeviceToken но когда пытаюсь отправить к себе уведомление получаю ошибку

{
    "multicast_id": 6043277869161850913,
    "success": 0,
    "failure": 1,
    "canonical_ids": 0,
    "results": [
        {
            "error": "InvalidParameters: Failed to decode APNS token: s_{length=32,bytes=0x9658a3f4b737f876f823a1705c1a39a6...dc13415e0a1af7e3}"
        }
    ]
}

может кто то знает в чем проблема? и как исправить? заранее спасибо

Здравствуйте!
У меня такая же проблема: FDeviceToken пустой. Поделитесь, как решили проблему?

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...