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

Push под iOS


krapotkin

Вопрос

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

  • 0

Народ, настало у меня время добавлять к программе iOS-версию

Как там работа с push, чем отличается, что куда нужно дописывать?

 

Завтра-послезавтра тоже начинаю в iOS версии Push делать. Пока для себя оставил вот эту закладочку

Ссылка 

Может пригодится.

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

нее, это как раз несложная штука

и она не меняется, андроид это или айос

сервер вызывает google, google шлет пуш

 

интересует именно то, что делается на клиенте

сижу ковыряю

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

нее, это как раз несложная штука

и она не меняется, андроид это или айос

сервер вызывает google, google шлет пуш

 

интересует именно то, что делается на клиенте

сижу ковыряю

А что именно в клиенте? В статье есть регистрация токенов и принятие OnReciveNotification, в iOS Push сообщения поддерживает перенос строки через (#13#10) или если на сервере PHP генерируете, тогда через %0A, кстати в пуше можно слать полноценный JSON, который не выводится в шторку (текст сообщения выводится), Zuby делал такое.

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

или GCM для apple в данном случае не работает?

я ориентировался на картинку с сайта Google

https://developers.google.com/cloud-messaging/images/notifications-overview.svg

Ссылка на комментарий
  • 0
procedure TForm_Main.RegisterPush;
var
  ADeviceID, ADeviceToken: string;
begin
{$IFDEF ANDROID}
  // Для Android
  APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.GCM);
  APushService.AppProps[TPushService.TAppPropNames.GCMAppID] := '**************';
{$ELSE}
  // Для iOS
  APushService := TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.APS);
{$ENDIF}
  // Создаём подключение к серверу
  AServiceConnection := TPushServiceConnection.Create(APushService);
  // Активируем подключение
  AServiceConnection.Active := True;
  // Подключаем делегаты
  AServiceConnection.OnChange := OnServiceConnectionChange;
  AServiceConnection.OnReceiveNotification := OnReceiveNotificationEvent;
  ADeviceID := APushService.DeviceIDValue[TPushService.TDeviceIDNames.DeviceID];
  ADeviceToken := APushService.DeviceTokenValue[TPushService.TDeviceTokenNames.DeviceToken];
 
  if (ADeviceID <> '') AND (ADeviceToken <> '') then 
  begin
    // Регистрируем устройство на сервере для отправки push сообщений
    RegisterDevice(ADeviceID, ADeviceToken, User_id.ToString);
 end;
end;
 
GCM не работает для apple. Я так понимаю Вы сертификаты еще не сгенерировали для PUSH в iOS? 
 
Хотя судя по картинке может и работает)
Изменено пользователем zairkz
Ссылка на комментарий
  • 0

спасибо

я-то думал, что как в доках у гугла написано

а APN - это просто альтернатива...

тогда да, сервер выходит из тени. там у яблок все посложнее чем в андроиде ((

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

новый вопрос. третий день бьюсь ((

при инициализации службы APushService приходит ошибка 
строка авторизации "aps-environment" для программы не найдена

главная печаль, что я создал тестовую программу, которая только инициализирует службу и принимает пуши, и все ОК

на основной программе вроде все сравнил, программа работает, пуш-сервис - нет 

куда бежать?

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

ах ты ж, решил))

если сгенерить Provisioning profile под приложение, и правильно выбрать его в настройках проекта, то все нормализуется...

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

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

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

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

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

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

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

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

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

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