5

मैं अपने एंड्रॉइड ऐप पर अपने सर्वर से संदेश को धक्का देने के लिए नया एफसीएम उपयोग कर रहा हूं।ऐप की हत्या होने पर पुश प्राप्त नहीं हुआ

 
{ 
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...", 
    "data" : { 
     "Nick" : "Mario", 
     "Room" : "PortugalVSDenmark" 
    } 
} 

मैं जब मैं एप्लिकेशन को समाप्त (होम बटन को देर तक दबाए तो बाईं ओर एप्लिकेशन स्लाइड) लेकिन नए FCM का उपयोग कर, पुश संदेशों का किसी भी अधिक नहीं दिया जाता है मेरे ऐप पर संदेशों को पुश करने में सक्षम हूँ।

क्यों?

+1

का उपयोग कर आप अपने पेलोड पोस्ट कर सकते हैं अधिसूचना उत्पन्न कर सकते हैं? –

+0

नया एफसीएम का उपयोग करने का क्या मतलब है? क्या आप अपने ऐप सर्वर से संदेश भेज रहे हैं, या आप संदेश भेजने के लिए फायरबेस संगीतकार का उपयोग कर रहे हैं? –

+0

हाँ मैं अपने सर्वर – redochka

उत्तर

2

कच्चे पेलोड की जांच करें, सर्वर से क्या प्राप्त होता है। body और title कुंजी को बंद होने पर पुश-सूचना प्राप्त करने के लिए notification कुंजी के अंतर्गत होना चाहिए। हालांकि ऐप बंद होने पर आपको अधिसूचना ट्रे में सूचनाएं मिलेंगी। नमूना पेलोड:

{ 
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...", 
    "notification" : { 
     "body" : "great match!", 
     "title" : "Portugal vs. Denmark", 
     "icon" : "myicon" 
    }, 
    "data" : { 
     "Nick" : "Mario", 
     "Room" : "PortugalVSDenmark" 
    } 
    } 
+0

आप सही हैं! अधिसूचना ऑब्जेक्ट को जोड़ना अधिसूचना दिखाता है अगर अधिसूचना ट्रे ऐप बंद होने पर भी होती है। हालांकि, मैं नोटिफिकेशन पर क्लिक करने के लिए उपयोगकर्ता बिना पेलोड पाने के लिए मेरे एप्लिकेशन चाहता था। क्या इसे हासिल करने का कोई तरीका है? – redochka

+0

नहीं, यह केवल ऐप बंद होने पर अधिसूचना ट्रे में दिखाया जाएगा और उस अधिसूचना को टैप करने पर आप पेलोड से अन्य जानकारी दिखा सकते हैं। – Avijit

+0

मैंने देखा कि जब पुश संदेश में अधिसूचना ऑब्जेक्ट जोड़ा जाता है, तो पेलोड को पृष्ठभूमि में चलने पर भी ऐप पर डिलीवर नहीं किया जाता है और जिसके लिए उपयोगकर्ता को पेलोड वितरित होने से पहले अधिसूचना टैप करने की आवश्यकता होती है। यह एक जाना नहीं है। यह जीसीएम से अलग है। – redochka

0

इस मुद्दे की कुंजी आपको ठीक उसी json प्रारूप बनाने के लिए है जो:

{ 
    "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...", 
    "notification" : { 
     "body" : "You have a new message", 
     "title" : "", 
     "icon" : "myicon" // Here you can put your app icon name 
    } 
} 

I "आइकन" टैग है, जो मुझे केवल सूचना प्राप्त कर सकते हैं बनाता है याद करने का उपयोग जब ऐप पृष्ठभूमि में है। एक बार आपके पास सही जेसन प्रारूप हो जाने पर, ऐप की हत्या होने पर आपको अधिसूचना मिल जाएगी।

+0

मैं ट्रे बार में सूचना प्राप्त करने के लिए नहीं देख रहा हूँ। मैं पृष्ठभूमि में ऐप को पेलोड वितरित करना चाहता हूं। – redochka

+0

उसी जेसन का उपयोग करते हुए, ऐप की हत्या होने पर मुझे अभी भी अधिसूचना प्राप्त नहीं होती है। – WISHY

1

मैंने देखा है कि मुझे इसे बंद करने से पहले ऐप लॉन्च करने के तरीके के आधार पर अलग-अलग व्यवहार मिलता है, जैसा कि लगता है कि विचित्र है।

यदि मैंने डीबगर के साथ ऐप लॉन्च किया है, और इसे बंद कर दिया है, तो मुझे अब एफसीएम अधिसूचनाएं प्राप्त नहीं हुई हैं। यदि मैं लॉन्चर आइकन से ऐप लॉन्च करता हूं, तो मुझे एफसीएम अधिसूचनाएं मिलती हैं, और यदि मैं 'लॉन्चर से लॉन्च' ऐप को स्वाइप करता हूं, तो मुझे एफसीएम अधिसूचनाएं मिलती रहती हैं। मुझे गैलेक्सी एस 4 और सोनी एक्सपीरिया जेड 2 पर यह व्यवहार मिलता है।

यह देखते हुए कि मेरे एप्लिकेशन पर फोन पर एप्लिकेशन का नवीनतम संस्करण प्राप्त करने के लिए सबसे आसान तरीका है डिबग हिट करने के लिए है, यह कुछ मैं याद रखना है कि है:

जब आप स्वाइप इसे बंद कर दिया, लॉन्चर आइकन से इसे फिर से लॉन्च करें, और इसे फिर से बंद करें। (कम से कम यदि आप एपी नहीं चल रहे हैं तो आप एफसीएम अधिसूचना व्यवहार का परीक्षण कर रहे हैं)।

से लिया: https://github.com/firebase/quickstart-android/issues/41

0

आपका सूचना JSON

"notification" : { 
     "body" : "great match!", 
     "title" : "Portugal vs. Denmark", 
     "icon" : "myicon" 
    }, 

firebase के डिफ़ॉल्ट कार्यक्षमता का उपयोग सूचना पट्टी में संदेश दिखाने के लिए जब आवेदन बंद कर दिया है शामिल होना चाहिए। अधिक जानकारी के

वैकल्पिक रूप से

onMessageReceived सभी मामलों में सक्रिय होना चाहिए के लिए this की जाँच करें, ताकि आप

private void sendNotification(String messageBody) { 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     PendingIntent pendingIntent = PendingIntent.getActivity(this, 0 /* Request code */, intent, 
       PendingIntent.FLAG_ONE_SHOT); 

     Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.ic_launcher) 
       .setContentTitle("FCM Message") 
       .setContentText(messageBody) 
       .setAutoCancel(true) 
       .setSound(defaultSoundUri) 
       .setContentIntent(pendingIntent); 

     NotificationManager notificationManager = 
       (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

     notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); 
    } 
संबंधित मुद्दे