• 0
master webs

IOS Push GCM/firebase

Вопросы

P.S.//  приложение никаких изменений не потерпело  код рабочий и проверенный на версиях 10/10,1 berlin

http://alexbirukov.ru/?go=all/php-server-dlya-rassylki-push-na-android-i-ios/ 

исходники на github https://github.com/master-webs/ios-push-FCM-delphi

в серверной части изменил регистрацию устройства в нашей базе .

GCM практически ни чем не отличается от FCM  как описал гугл в FCM больше возможностей и он рекомендует перейти на его использование.

Приложения Delphi 10/10.1  Android также успешно проходят регистрацию через поставщиков услуг (GCM) и на сколько я понял гугл совместимость не будет прикрывать для работоспособности приложений которые уже не обновляют в плеймаркете. Интерфейс на мой взгляд стал намного проще и удобнее с консоли можно спокойно отправлять групповые  и адресные оповещения.

Что касается возможности отправки оповещений на IOS устройства. Доступно много примеров и библиотек практически для каждой среды разработки кроме (продуктов embarcadero)

покопавшись в документации нашол статью которая дала понять как переригестрировать токены ios  и получить токен FCM.

сделал следующе  ios получивший токен спешит зарегистрировать девайс  на вашем сервере скрипт перехватывает и делает регистрацию на серверах гугла  и новый токен мы также записываем в свою базу

в архиве прикрепляю серверную часть php сделана она чисто для тестирования и  я не рекомендую использовать как рабочий вариант хотя  до рабочего варианта там допилить совсем не много.

Ниже прикрепляю скрины  лк FCM 

push.zip

2016-06-19_13-02-12.png

2016-06-19_13-03-18.png

2016-06-19_13-05-03.png

Изменено пользователем master webs

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


Ссылка на сообщение
Поделиться на другие сайты

7 ответов на этот вопрос

  • 0

По сути, сервису не нужно знать о токенах ios девайсов. Ведь токен должен быть где-то записан, чтобы его можно было передать в FCM. Но там структуры вроде для платформ разные. Так вскольз смотрел 

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
1 минуту назад, ZuBy сказал:

По сути, сервису не нужно знать о токенах ios девайсов. Ведь токен должен быть где-то записан, чтобы его можно было передать в FCM. Но там структуры вроде для платформ разные. Так вскольз смотрел 

на сколько я понял  загвоздка лиш в одном как записать токен ios в базу GCM  

В console.firebase.google.com я добавил приложение на ios  там-же загрузил сертификат для отправки оповещений

в замен появился файл с кучей всяких ключей 

полсе получения токена  так понимаю его нужно обязательно обозначить console.firebase.google.com иначе получаю ошибку отправки при етом  скрипт на пхп отлично шлет все на прямую

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

нашел такую документацию на гугле https://developers.google.com/instance-id/reference/server#create_registration_tokens_for_apns_tokens

по сути перерегистрация токенов ios для GCM 

буду экспериментировать получать токен уже через свой сервер может прокатит такая обманка как временное решение  о результатах отпишу

опять тупик перерегистрация идет получаю токен для ios  отправка тоже успешна но они не доходят

Изменено пользователем master webs

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

после пары литров пива  FCM сдался завтра постараюсь написать подробный мануал ))

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0
13 часа назад, master webs сказал:

после пары литров пива  FCM сдался завтра постараюсь написать подробный мануал ))

Будем ждать..

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Добавил описание  в первый топик прошу не судить строго  нет таланта писать статьи )) лишь  попытался объяснить немного принцип работы и выложил рабочий пример

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


Ссылка на сообщение
Поделиться на другие сайты
  • 0

добавил ссылку на github в первый пост, в нем есть исходники для delphi 10.1 berlin (10 должно все работать)

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

    • От FREEFAR
      Всем доброго времени суток. 
      Казалось бы. Во время разработки и перед тем как подписали приложение сертификатом Distribution, пуши приходили норм. Но после того как прошли аудит Apple пуши куда-то пропали. FCM возвращал ошибку InvalidRegistration.
      Оказалось все достаточно просто. На сервере с которого мы отправляем пуш, В php скрипте, который отправляет пуши надо выставить
      sandbox = false
      Ура! Всем удачи)
    • От Savage
      Здравствуйте!
      Второй день не получается поменять стандартный звук в push-уведомлении на свой.
      Сделал все по мануалу Гугла,  https://developers.google.com/cloud-messaging/http-server-ref
      Добавил звуковые файлы в проект в нужное место (/res/raw/ )
      Пуши летают, но звук стандартный. Такое впечатлеие, что com.embarcadero.gcm.notifications.GCMIntentService  просто игнорирует параметр sound
      Посмотрел при помощи LogCat
      В конечном итоге, в NotificationService прилетает уже дефолтный звук.
      04-05 23:03:34.172 V/NotificationService(1143): enqueueNotificationInternal: pkg=com.savage.pushtest id=4 notification=Notification(pri=0 contentView=null vibrate=null sound=content://settings/system/notification_sound defaults=0x0 flags=0x0 color=0x00000000 vis=PRIVATE)
      Неужели копать только в сторону правок com.embarcadero.gcm.notifications.GCMIntentService?
      Может есть готовое решение?
    • От x11
      Кто-то пытался работать с  Realtime Database или с Cloud Firestore?
      Я понимаю, что там всё на REST. Но пока что непонятно, куда именно отправлять запросы.
      Кто-то пытался это использовать?
      https://github.com/spinettaro/Firebase4Delphi
      у меня так и не взлетело, даже аутентификация не проходит
    • От Rusland
      Приложение свернуто или закрыто.
      Отправляю один пуш, на телефоне в шторке появляется уведомление.
      Отправляю еще один, появляется второе уведомление и так далее. Сколько пушей, столько и уведомлений.
      Как сделать чтобы все уведомления собирались в одном уведомлении в шторке? (как делают telegram, whatsapp и т. п.)
    • От Евгений Корепов
      Наткнулся тут на изящную штуку для приложения с PUSH уведомлениями на Android и Ios. Один объект, все сам делает.
      Внедрил в одно боевое приложение с 100+ тысячами установок, полет нормальный.
      Описание тут https://delphiworlds.com/2017/04/firebase-cloud-messaging-android-ios/
      Исходный код с примером на гитхабе https://github.com/DelphiWorlds/PushClient
      Использование максимально простое:
      uses DW.PushClient; .... private FPushClient: TPushClient; procedure PushClientChangeHandler(Sender: TObject; AChange: TPushService.TChanges); procedure PushClientReceiveNotificationHandler(Sender: TObject; const ANotification: TPushServiceNotification); .... procedure TFormMain.InitPushService; begin FPushClient := TPushClient.Create; FPushClient.GCMAppID := ConstGCMAppID; FPushClient.ServerKey := ''; FPushClient.BundleID := ''; FPushClient.UseSandbox := Debug; // Change this to False for production use! FPushClient.OnChange := PushClientChangeHandler; FPushClient.OnReceiveNotification := PushClientReceiveNotificationHandler; try FPushClient.Active := True; except SendError('FPushClient.Active Exception'); end; end; procedure TFormMain.PushClientChangeHandler(Sender: TObject; AChange: TPushService.TChanges); begin if TPushService.TChange.DeviceToken in AChange then begin HDevicePushParams.DeviceID:=FPushClient.DeviceID; HDevicePushParams.DeviceToken:=FPushClient.DeviceToken; GetHTTP(CommandRegisterFCM); // Memo1.Lines.Add('DeviceID = ' + FPushClient.DeviceID); // Memo1.Lines.Add('DeviceToken = ' + FPushClient.DeviceToken); end; end; procedure TFormMain.PushClientReceiveNotificationHandler(Sender: TObject; const ANotification: TPushServiceNotification); begin // ShowMessage(ANotification.DataObject.ToString... end; Правда руки не дошли разобраться для чего ему 
        FPushClient.ServerKey := '';
        FPushClient.BundleID := '';
      Но и без этого работает.
       
    • От Равиль Зарипов (ZuBy)
      Ссылка: http://blog.rzaripov.kz/2017/02/firebase-android-ios-2.html
      Автор: Зарипов Равиль @ZuBy
      Описание: Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS [Часть 2]
      В предыдущей  части , я рассказывал как сделать настройку пуш уведомления в консоли Firebase, в этой я покажу код на Delphi и серверную часть на PHP
      https://github.com/rzaripov1990/PUSHTestFCM
    • От Равиль Зарипов (ZuBy)
      Ссылка: http://blog.rzaripov.kz/2017/02/firebase-android-ios.html
      Автор: Зарипов Равиль @ZuBy
      Описание: Настройка пуш уведомлении через сервис Firebase для ANDROID и IOS
  • Последние посетители   0 пользователей онлайн

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