2016-02-17 21 views
11

Chcę zaimplementować powiadomienia push na Androida i iOS za pomocą Google Cloud Messaging. Nie chcę używać klucza notification w moim ładunku, ponieważ zachowanie Androida nie jest idealne. Na Androidzie wolałbym, aby mój odbiornik zawsze był uruchamiany z ładunkiem użytecznym data i mogę samodzielnie zbudować Notification używając NotificationCompat. Jeśli korzystasz z zestawu danych na Androidzie, nie masz żadnej kontroli nad stylem powiadomienia, na przykład.Korzystanie z GCM na Androida i iOS bez powiadomienia payload

Jednak gdybym tylko wysłać data ładowność, myślę, że moja aplikacja iOS nie otrzyma impuls, jeśli jest ona w tło - zabitych, nigdy nie rozpoczęła od restartu urządzenia, itd. Myślę, że jest to content_available flag na GCM, które mogą wywołać pchnięcie w każdym razie?

Czy mogę, na iOS, powielać zachowanie Androida polegające na tym, że po zgłoszeniu mam zawsze kod w aplikacji? Byłoby dobrze skonstruować własne powiadomienie iOS na podstawie ładunku GCM data i może używając czegoś takiego jak UILocalNotification, ale z tego, co czytam, iOS wymaga istnienia ładowności notification, aby upewnić się, że naciśnięcie jest zawsze odbierane przez użytkownik.

Czy mogę uzyskać tego rodzaju kontrolę na iOS?

+0

Jak uniknąć powiadomienia, które będzie wyświetlane w centrum powiadomień w systemie Android. Nawet jeśli nie zawieram powiadomień w wiadomości gcm, powiadomienie jest wyświetlane z pustym tekstem i nazwą aplikacji jako tytułem. – VishalKale

+0

Gotowy do pracy. content_available ustawiony na false nie będzie wyświetlał żadnego powiadomienia niezależnie od aplikacji w tle lub na pierwszym planie. Mogę obsłużyć powiadomienie wewnątrz wiadomościMessageReceived. – VishalKale

Odpowiedz

0

Z moich badań wydaje się, że nie można uniknąć użycia ładunku użytecznego notification. Można jednak pozbyć się domyślnego zachowania Androida polegającego na automatycznym tworzeniu powiadomień, jeśli zamiast tworzyć MyGcmListenerService, który rozszerza GcmListenerService, należy utworzyć własny GcmListenerService i rozszerzyć zwykły stary Service.

0

Trzeba wyłączyć flagę content_available do false, tak, że działa na iOS jak oczekiwano i zapewniają pełną kontrolę na Androidzie,

Źródło: - Pracowałem na powiadomienia push zarówno Android i IOS niedawno

+0

OK, ale czy powinienem sam zbudować UILocalNotification? –

+0

nie w IOS nie można tego zrobić –