Перейти к содержанию

Вопросы

здравствуйте, я пытаюсь сделать 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}"
        }
    ]
}

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

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

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

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

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


  • Похожий контент

    • От slav_z
      Все разработчики при работе с FMX рано или поздно сталкиваются с одной и той же проблемой: необходимо исключить "случайное" срабатывание нажатий элементов внутри скроллбокса во время его скроллинга. Идут годы, а решения так и нет. Давайте попробуем это исправить. Поехали!
      Запускаем IDE, создаем новый проект, кидаем на форму TVertScrollBox и на него чего-нибудь побольше... запускаем на мобильном устройстве, пытаемся скроллировать,

      получаем проблемы в виде срабатывания разных событий типа OnClick элементов.
      Решение состоит в том, чтобы сделать элементы "невидимыми" для событий связанных с действиями пользователя с экраном во время скроллинга.
      Делаем следующее:

      Все. Переносим код в базовую форму, делаем его более гибким, убираем все те костыли, которые мы уже успели сделать ранее...
      Удачи!
      https://github.com/slav-libx/scroll-click.git
    • От Martifan
      Привет,
      подскажите как можно реализовать авторизацию с помощью Apple ID? любые идеи.
      заранее спасибо
    • От Eric Myval
      Добрый день! Я собрал приложение и подготовил IPA файл, заполнил всю информацию, прикрепил все иконки. Когда загружаю приложение в App Store Connect и пытаюсь отправить на проверку, мне выдают следую ошибку:
      В каталог объектов Xcode необходимо добавить значок приложения с разрешение 1024х1024.
      Как это сделать? Уже всю голову сломал... 
       
      Использую Rad Studio 10.3.3 + PAServer 20 + самый свежий Xcode и последняя обнова на маке
      Пробовал и Rad Studio 10.4 + PAServer 21, аналогичная проблема
      Остальные ошибки не важны, их решить легко. Интересен только последний пункт. 

    • От Igor Aleksiyuk
      У кого нибудь вышло это сделать
    • От Эрик Шакиров
      Подскажите пожалуйста, возможно ли сделать выбор файла в IOS. Например, также как в Android 
    • От Eric Myval
      Сегодня начал разбираться с компиляцией под Mac и под iOS и сразу столкнулся с проблемами. Использую Rad Studio 10.3.3, Mac Mini 10.15.1, Windows 10. PAServer20.0, Xcode 11.2.1 Выдает следующую ошибку на всех платформах, как iOS, так и iOS Simulator, macOS32 - 
      Unable to launch process on '192.168.8.182' using the parameters from the 'MacMini' profile. The following error was returned: 'Unable to create process: /Applications/PAServer-20.0.app/Contents/MacOS/dbkosx_26_0 Получается собрать проект только в macOS64, но! Приложения запускаются, работают, но после их закрытия в отладке, пишет, что ПО устаревшие и кидает ссылку на переход с 32 на 64. Но как так? Оно же собрано на 64х))) В общем, полный тупик и убил весь день. Есть идеи? 
    • От Lenar Gubaidullin
      Доброго времени суток!
      Подскажите пожалуйста на RIO 10.3.3 каким образом получить доступ до тела и текста Push сообщения при запуске приложения?
      В доках описано в примечании, что заголовок и тело недоступны. Получаю только информацию об отправителе и ID сообщения и некоторую другую, но текста нет
      Note: The push notification title and body are not available in DataObject when the application is launched (coldstart) by tapping the Notification in the Notification Center.
      Каким образом можно получить сам текст?
    • От Martifan
      Доброго времени сутки.
      Пытаюсь получить уведомлены делаю все как в примерах и все работает хорошо уведомления приходят но есть одно проблема:
      если у меня экран телефона выключен то когда приходит уведомление только звучит а экран не загорается хотя я когда создаю канал указываю:
      Channel.Importance := TImportance.High; Channel.LockscreenVisibility := TLockscreenVisibility.&Public; но все равно экран не включается кто в курсе как можно сделать так чтобы экран включился? ну как это делает вайбер
      заранее всем спасибо
    • От Сергей Сергеев
      Обнаружил глюк, как исправить - не нашел, по вот этому обсуждению на Embe - похоже он с 15 года..
      https://forums.embarcadero.com/thread.jspa?threadID=116534
      Выглядит так, взял из примера WebBrowser, прописал в дизайне адрес, к примеру Яндекс,
      и запускаю на Ифоне 5 - нажимаю Гоу, при клике на любой ссылке ( например на большой надписи Яндекс в центре), вдруг откдуда не возьмись - появляется клава - английская,
       
       
       
      которая Done, ничего никуда не вводит, и не прячется от слова Никак ( с экрана)
      дальше - тапаем в поле ввода поиска, вылазит похоже еще одна, уже похоже ФМХ клава - со словом Готово, которая работает..
      переключается и по готово - прячется.
       
       
       
       
      но после того как Готово спряталась - эта ( от Сафари чтоли ) остается, по Доне не скрывается, и при кликах по ссылкам - прячется и опять вылазит..
       
      сделал то что написано в обсуждении, но это прячется только второй ( Доне)ТулБар - клавы две так и висят..
      Ничего по теме не нашел, похоже глюк старый, и возможно уже решенный..
      пс.  клавиатуры не две все таки, два тул бара, повесил на он хайд, он Шоу обработчики, происходит следующее, по Готово - прячется клава и сразу опять показывается уже без "готово" - с "доне".. она же сразу показывается при клике по ссылке..
       
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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