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

Вопросы

здравствуйте, я пытаюсь сделать 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 эмодзи.

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

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

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


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

    • От Эрик Шакиров
      Подскажите пожалуйста, возможно ли сделать выбор файла в 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, ничего никуда не вводит, и не прячется от слова Никак ( с экрана)
      дальше - тапаем в поле ввода поиска, вылазит похоже еще одна, уже похоже ФМХ клава - со словом Готово, которая работает..
      переключается и по готово - прячется.
       
       
       
       
      но после того как Готово спряталась - эта ( от Сафари чтоли ) остается, по Доне не скрывается, и при кликах по ссылкам - прячется и опять вылазит..
       
      сделал то что написано в обсуждении, но это прячется только второй ( Доне)ТулБар - клавы две так и висят..
      Ничего по теме не нашел, похоже глюк старый, и возможно уже решенный..
      пс.  клавиатуры не две все таки, два тул бара, повесил на он хайд, он Шоу обработчики, происходит следующее, по Готово - прячется клава и сразу опять показывается уже без "готово" - с "доне".. она же сразу показывается при клике по ссылке..
       
    • От Сергей Сергеев
      Приветствую всех!
      Сделал приложение для Андроид, делал свой стиль в BSD  - освоил добавление ( копированием ) панелей и чекбоксов со своими картинками.
      В принципе, все получилось, на разным смартфонах работатет - все картинки на месте.
      Но при попытке повторить стиль для Ios обнаружилась проблема, стиль для iPhone 5 ( scale 2) - все ок, но  Iphone 6+ ( scale 3) - все картинки из стиля на панельках и чек боксах берутся со смещением ( примерно 30%).
      Т.е. указана координата левого верхнего угла  в файле скажем 300 по Х, берется 400 . н у итак далее.. натыкался на тексты, что для IOS - разрешение 3х - поддерживают не все стили. Может в этом дело? никто не сталкивался?
      Попутно обнаружил, что при редактировании стиля IOS в BSD - не создаются новые обьекты в файле .style , при этом, при редактировании стиля Андроид - все нормально создается. 
      вав проверил ! и в Андроид перестало сохряняться в style файле! но полгода назад в 10.3 - все работала.. стиль то для андроид я именно так сделал ( примерно в феврале)
      Например:
      в BSD делаю - File - New - New Ios Style

      делаю копию обьекта Panel

      копия создается Panel_copy, в файле vsf - сохраняется, но при сохранении стиля для FMX, ( Save as .style) - обьекта в файле нет, причем как Panel, так и Panel_Copy

       
      если проделать, так же в стиле для Андроид Лайт, то обьект добавляется в конец файла..  ( Уже не делается и для Андроида)
        а здесь нет - последний icon.. и поиском не находится и если загрузить в BookStyle - то стиля Panel_Copy нет.

      про "сьезжающие"  картинке в стиле для Ios 3x - опишу подробнее позже, решение не найдено пока..
       
    • От Евгений Корепов
      Подскажите, реально ли в текущий момент сделать рекламу в iOS приложениях? 
      Документация эмбаркадеры, вроде и современная (http://docwiki.embarcadero.com/RADStudio/Rio/en/Using_the_AdMob_Service в примеру), но пометка внизу страниц "This page was last edited on 28 September 2015, at 15:17." дает понять что они забили на этот раздел документации 4 года назад, и с выходом Rio тупо скопипастили, чтоб было. Издевательство какое то (
       
      P.S. В документации идет речь о iAd, но согласно Apple:
      About the iAd App Network Shutdown : As of December 31, 2016, the iAd App Network is no longer available.
       
       
    • От Паршенко Виктор
      Доброго времени суток.
      Возникла проблема с использование TLocationSensor в Delphi 10.3 Rio под iOS. 
      Открыл, скомпилировал и установил приложение LocationDemo взятое из примеров.
      Device: iPhone 7+, version ios: 12.1.3. 
      При запуске, приложение запросило разрешение на доступ к геолокации (разумеется разрешил)
      Индикатор локации в верхнем баре показал, что его сейчас используют, но само приложение не реагирует на это никак. В частности событие OnChangeLocation не срабатывает у TLocationSensor. 
      Что делал я, чтоб попытаться устранить эту проблему:
      - скомпилировал этот же проект под Android (пример рабочий, Android отреагировал и показал мне местоположение)
      - внес изменения в системные юниты по рабочему примеру : 
      - открывал любые другие приложения, которые используют геолокацию (успешно находит и показывает мое местоположение)
      У меня закончились идеи, почему не работает TLocationSensor на iOS.
      P.S. не проверял компиляцию на версии делфи по ниже (10.2.3, 10.2 ... ). 
      Для красоты эксперимента, есть тут кто на Rio использовал геолокацию для iOS, у вас работает? 
       
    • От void
      Добрый день.
      (Delphi 10.3)
      (XCode 10.1)

      Подключил статический framework на версии SDK 11.2 (macMini)
      как описано в:
      ВСЕ ЗАРАБОТАЛО!
       
       

      После обновления:
      1) macMini к
              XCode 10.1
              SDK 12.1
              PAServer 20.0
      2) windows
              PAServer 20.0
      3) PAServer - конектится
      4) прописал дополнительные SDK  (Delphi -> SDK Manager -> Properties)
      5) Получил SDK 12 на windows (Delphi -> Update Local File Cache)
      6) Пути в Linking изменил для SDK12

      При сборке выдает ОШИБКУ:
      [DCC Error] E2597 Undefined symbols for architecture arm64 (для 32 - armv7):...

      [DCC Fatal Error] F2588 Linker error code: 1 ($00000001)

      Кто нибудь сталкивался с такой ошибкой после обновления?
       
  • Последние посетители   0 пользователей онлайн

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

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