2015-06-11 9 views
6

Android'de en son GCM güncellemesiyle 2 sorunla karşılaştım. GCM'ye göre, yük "bildirim" özelliğini içeriyorsa, otomatik olarak bildirim tepside gösterilir. Ancak, bu bildirim için musluk etkinliğiyle nasıl baş edeceğinden bahsetmediler. Yük yalnızca veri özniteliği içeriyorsa, GCMListenerService'nin 'onMessageReceived' öğesi çağrılır. Ancak, yük hem bildirim hem de veri nitelikleri içeriyorsa, yöntem çağrılmaz. Herhangi bir fikir nasıl çözülür? Orada nasıl davrandığını görmek için iOS'u da kontrol etmeliyim.GCM tarafından otomatik olarak görüntüleniyorsa, Android'deki bildirim işlemine nasıl girilir?

+1

Eğer Parse.com kullanmayı denediniz mi? Android ve iOS için oldukça basit. Ama sadece GCM kullanmak istediğinizi düşünüyorum ... –

cevap

11

Bildirim yükünde bir tıklama işlemi ayarlamanız gerekir. Ardından, kullanıcı bildirimi açtığında/tıkladığında, uygulamanızda bu eylemle bildirilen bir Etkinlik başlatılır.

örn seti click_action: OPEN_ACTIVITY_1 ve istenen Faaliyet için aşağıdaki amaç filtresini ekleyin:

<intent-filter> 
    <action android:name="OPEN_ACTIVITY_1" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 

Sonra Faaliyete mesajın veri çekme özelliğine bakarak sonra getIntent() kullanarak ve niyet ekstraları.

burada girişine bakın: https://developers.google.com/cloud-messaging/server-ref#notification-payload-support şimdi

+0

GcmListenerService, bildirim niteliği yükte mevcut olduğunda bile çağrılmadığından daha faydalı değil mi? – Winster

+0

Bir bildirim gösterecek ve GcmListenerService'i çağırmaya yönelik tek bir ileti göndermenin bir yolu yoktur. Aynı etkiyi, biri bilgilendirme yükü olan, diğeri ise yalnızca veri yükü olan iki mesaj göndererek alabilirsiniz. – morepork

+0

Amaç süzgecini içine aldığınız etkinliğe gitmek için bir amaç belirlemeniz gerekmiyor mu? Bu niyet filtresini görünümlerimden birine yerleştirdim ve json nesnesindeki bildirim anahtarında "click_action": "OPEN_ACTIVITY_1" olan bildirimi tıkladığımda hiçbir şey olmuyor. Android devresinde yeniyim, böylece önerileriniz yardımcı olacaktır. – bxiong

0

Eğer data seçeneğiyle itmek göndermek, bildirim işlemek istiyorsanız, o zaman onMessageReceived

tarafından tarihinde işleyemez, notification param ile itmek gönderilen varsa, GCM ve onMessageReceived ile işleyebilir.

Uyarı: ios notifications anahtarıyla bildirimleri işleyebilir.

Android data anahtarı için ios için notification anahtarına bas.

Android için; ios için

{"data":{"message":"hey"}},registration_ids":["device token"]

:

{"notification":{"title":"Hey title", "body":" Hey body"},"to":"device token"}

+0

kayıt_idleri çalıştırarak mesajı yalnızca bir cihaza veya daha fazlasına gönderecekler. dizi). Uygulamanın yüklü olduğu her bir cihaza nasıl gönderilir (aslında tüm kimlikleri listelemeden)? (hem IOS hem de Android'de) – BraveNinja

İlgili konular