संसाधन: मैसेज
Firebase क्लाउड से मैसेज सेवा से भेजने के लिए मैसेज.
JSON के काेड में दिखाना |
---|
{ "name": string, "data": { string: string, ... }, "notification": { object ( |
फ़ील्ड | |
---|---|
name |
सिर्फ़ आउटपुट के लिए. भेजे गए मैसेज का आइडेंटिफ़ायर, |
data |
सिर्फ़ इनपुट. आर्बिट्ररी कुंजी/वैल्यू पेलोड, जो UTF-8 कोड में होना चाहिए. कुंजी कोई सुरक्षित शब्द ("from", "message_type" या "google." या "gcm.submit." से शुरू होने वाला कोई भी शब्द नहीं होना चाहिए. iOS डिवाइसों को सिर्फ़ डेटा फ़ील्ड वाले पेलोड भेजते समय, एक ऑब्जेक्ट, जिसमें |
notification |
सिर्फ़ इनपुट. सभी प्लैटफ़ॉर्म पर इस्तेमाल करने के लिए, सूचना का बुनियादी टेंप्लेट. |
android |
सिर्फ़ इनपुट. FCM कनेक्शन सर्वर के ज़रिए भेजे गए मैसेज के लिए Android के खास विकल्प. |
webpush |
सिर्फ़ इनपुट. Webpush प्रोटोकॉल के विकल्प. |
apns |
सिर्फ़ इनपुट. Apple Push Notification Service के खास विकल्प. |
fcm_options |
सिर्फ़ इनपुट. सभी प्लैटफ़ॉर्म पर इस्तेमाल करने के लिए, FCM SDK टूल की सुविधा के विकल्पों के लिए टेंप्लेट. |
यूनियन फ़ील्ड target . ज़रूरी है. सिर्फ़ इनपुट. मैसेज भेजने के लिए टारगेट करें. target इनमें से सिर्फ़ एक हो सकता है: |
|
token |
मैसेज भेजने के लिए रजिस्ट्रेशन टोकन. |
topic |
मैसेज भेजने के लिए विषय का नाम, जैसे कि "मौसम". ध्यान दें: "/topics/" उपसर्ग नहीं दिया जाना चाहिए. |
condition |
मैसेज भेजने की शर्त, जैसे कि "'foo' && 'बार' विषय चुनें". |
सूचना
सभी प्लैटफ़ॉर्म पर इस्तेमाल करने के लिए, सूचना का बुनियादी टेंप्लेट.
JSON के काेड में दिखाना |
---|
{ "title": string, "body": string, "image": string } |
फ़ील्ड | |
---|---|
title |
सूचना का टाइटल. |
body |
सूचना का मुख्य टेक्स्ट. |
image |
इसमें उस इमेज का यूआरएल होता है जिसे डिवाइस पर डाउनलोड किया जाएगा और जो सूचना के तौर पर दिखाया जाएगा. JPEG, PNG, BMP, सभी प्लैटफ़ॉर्म पर काम करता है. ऐनिमेटेड GIF और वीडियो की सुविधा, सिर्फ़ iOS पर काम करती है. WebP और HEIF का अलग-अलग लेवल और प्लैटफ़ॉर्म वर्शन के हिसाब से इस्तेमाल किया जा सकता है. Android में 1 एमबी से ज़्यादा की इमेज अपलोड नहीं की जा सकती. Firebase स्टोरेज पर इमेज होस्ट करने के लिए कोटे का इस्तेमाल और असर/लागत: https://firebase.google.com/pricing |
Androidकॉन्फ़िगरेशन
FCM कनेक्शन सर्वर के ज़रिए भेजे गए मैसेज के लिए Android के खास विकल्प.
JSON के काेड में दिखाना |
---|
{ "collapse_key": string, "priority": enum ( |
फ़ील्ड | |
---|---|
collapse_key |
मैसेज के ऐसे ग्रुप का आइडेंटिफ़ायर जिसे छोटा किया जा सकता है, ताकि डिलीवरी फिर से शुरू होने पर सिर्फ़ आखिरी मैसेज भेजा जा सके. एक समय में, ज़्यादा से ज़्यादा चार अलग-अलग छोटा करने वाले बटनों की अनुमति दी जा सकती है. |
priority |
मैसेज की प्राथमिकता. "सामान्य" शब्द लिया जा सकता है और "ज़्यादा" वैल्यू. ज़्यादा जानकारी के लिए, मैसेज की प्राथमिकता सेट करना देखें. |
ttl |
अगर डिवाइस ऑफ़लाइन है, तो मैसेज को FCM स्टोरेज में कितनी देर (सेकंड में) रखा जाना चाहिए. लाइव स्ट्रीम में ज़्यादा से ज़्यादा चार हफ़्ते लग सकते हैं. अगर यह अवधि सेट नहीं की गई है, तो डिफ़ॉल्ट तौर पर इसकी वैल्यू चार हफ़्ते की होती है. अगर तुरंत मैसेज भेजना है, तो इसे 0 पर सेट करें. JSON फ़ॉर्मैट में, अवधि के टाइप को ऑब्जेक्ट के बजाय स्ट्रिंग के तौर पर एन्कोड किया जाता है. यहां स्ट्रिंग, सफ़िक्स "s" पर खत्म होती है (सेकंड को दर्शाता है) और इसके पहले सेकंड की संख्या होती है, जिसमें नैनोसेकंड को भिन्नात्मक सेकंड के रूप में दिखाया जाता है. उदाहरण के लिए, 0 नैनोसेकंड वाले तीन सेकंड को JSON फ़ॉर्मैट में "3s" के तौर पर एन्कोड किया जाना चाहिए. वहीं, 3 सेकंड और 1 नैनोसेकंड को JSON फ़ॉर्मैट में "3.000000001s" के तौर पर एन्कोड किया जाना चाहिए. ttl को निकटतम सेकंड में बदल दिया जाएगा. सेकंड में कुल नौ दशमलव अंक, जो ' |
restricted_package_name |
मैसेज पाने के लिए, ऐप्लिकेशन का पैकेज नाम, जहां रजिस्ट्रेशन टोकन का मेल खाना ज़रूरी है. |
data |
आर्बिट्रेटी की/वैल्यू पेलोड. अगर यह मौजूद होगा, तो यह एक ऑब्जेक्ट, जिसमें |
notification |
Android डिवाइसों पर मैसेज भेजने की सूचना. |
fcm_options |
Android के लिए FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प. |
direct_boot_ok |
अगर नीति को 'सही है' पर सेट किया जाता है, तो डिवाइस के डायरेक्ट बूट मोड में होने पर ऐप्लिकेशन पर मैसेज डिलीवर किए जा सकेंगे. डायरेक्ट बूट मोड से जुड़ी सहायता देखें. |
AndroidMessageप्राथमिकता
Android डिवाइसों पर भेजने के लिए मैसेज की प्राथमिकता. ध्यान दें कि यह प्राथमिकता FCM का ऐसा सिद्धांत है जिससे यह कंट्रोल किया जाता है कि मैसेज कब डिलीवर किया जाए. FCM गाइड देखें. इसके अलावा, AndroidNotification.NotificationActivity का इस्तेमाल करके टारगेट किए गए Android डिवाइसों पर सूचना दिखाने की प्राथमिकता भी तय की जा सकती है.
एनम्स | |
---|---|
NORMAL |
डेटा मैसेज के लिए डिफ़ॉल्ट प्राथमिकता. सामान्य प्राथमिकता वाले मैसेज, स्लीप मोड वाले डिवाइस पर इंटरनेट नहीं खोलते. साथ ही, बैटरी बचाने के लिए मैसेज की डिलीवरी में देरी हो सकती है. कम समय-संवेदनशील संदेशों, जैसे नए ईमेल की सूचना या अन्य डेटा को सिंक करने के लिए, सामान्य वितरण प्राथमिकता चुनें. |
HIGH |
सूचना वाले मैसेज के लिए डिफ़ॉल्ट प्राथमिकता. FCM ज़्यादा प्राथमिकता वाले मैसेज तुरंत डिलीवर करने की कोशिश करता है. इससे FCM सेवा, सो रहे डिवाइस को जब भी मुमकिन हो, चालू कर देती है और आपके ऐप्लिकेशन सर्वर पर इंटरनेट चालू कर देती है. उदाहरण के लिए, फटाफट मैसेज सेवा, चैट या वॉइस कॉल की सूचना देने वाले ऐप्लिकेशन को आम तौर पर इंटरनेट कनेक्शन खोलना होता है. साथ ही, यह पक्का करना होता है कि FCM, डिवाइस पर बिना देरी किए मैसेज भेजे. अगर संदेश समय के लिए गंभीर है और उसके लिए उपयोगकर्ता की तुरंत सहभागिता की आवश्यकता है, तो उच्च प्राथमिकता सेट करें, लेकिन सावधान रहें कि अपने संदेशों को उच्च प्राथमिकता पर सेट करने से सामान्य प्राथमिकता वाले संदेशों की तुलना में बैटरी की तेज़ी से खर्च होती है. |
Androidसूचना
Android डिवाइसों पर मैसेज भेजने की सूचना.
JSON के काेड में दिखाना |
---|
{ "title": string, "body": string, "icon": string, "color": string, "sound": string, "tag": string, "click_action": string, "body_loc_key": string, "body_loc_args": [ string ], "title_loc_key": string, "title_loc_args": [ string ], "channel_id": string, "ticker": string, "sticky": boolean, "event_time": string, "local_only": boolean, "notification_priority": enum ( |
फ़ील्ड | |
---|---|
title |
सूचना का टाइटल. अगर यह मौजूद होगा, तो यह |
body |
सूचना का मुख्य टेक्स्ट. अगर यह मौजूद होगा, तो यह |
icon |
सूचना का आइकॉन. ड्रॉ करने लायक संसाधन myicon के लिए, सूचना आइकॉन को myicon पर सेट करता है. अगर आप अनुरोध में इस कुंजी को नहीं भेजते हैं, तो FCM आपके ऐप्लिकेशन मेनिफ़ेस्ट में तय किया गया लॉन्चर आइकॉन दिखाता है. |
color |
सूचना के आइकॉन का रंग, #rrggbb फ़ॉर्मैट में दिखाया जाता है. |
sound |
डिवाइस को सूचना मिलने पर चलने वाली आवाज़. "डिफ़ॉल्ट" के साथ काम करता है या ऐप्लिकेशन में बंडल किए गए किसी साउंड रिसॉर्स की फ़ाइल का नाम हो. ध्वनि फ़ाइलें /res/raw/ में होनी चाहिए. |
tag |
सूचना दिखाने वाले पैनल में मौजूदा सूचनाओं को बदलने के लिए इस्तेमाल किया जाने वाला आइडेंटिफ़ायर. अगर यह नीति तय नहीं की गई है, तो हर अनुरोध के लिए नई सूचना बनाई जा सकती है. अगर सूचना दे दी गई है और उसी टैग के साथ कोई सूचना पहले से दिखाई जा रही है, तो नई सूचना, सूचना पैनल में मौजूदा सूचना को बदल देती है. |
click_action |
सूचना पर क्लिक करने से जुड़ी उपयोगकर्ता की कार्रवाई. अगर बताया गया है, तो किसी उपयोगकर्ता के सूचना पर क्लिक करने पर, मैच होने वाले इंटेंट फ़िल्टर वाली गतिविधि लॉन्च हो जाती है. |
body_loc_key |
ऐप्लिकेशन के स्ट्रिंग रिसॉर्स में मौजूद मुख्य स्ट्रिंग की कुंजी. इसका इस्तेमाल, उपयोगकर्ता की मौजूदा स्थानीय भाषा के मुताबिक मुख्य हिस्से को स्थानीय भाषा में लिखने के लिए किया जाता है. ज़्यादा जानकारी के लिए, स्ट्रिंग रिसॉर्स देखें. |
body_loc_args[] |
शरीर के टेक्स्ट का स्थानीय भाषा में अनुवाद करने के लिए, body_loc_key में फ़ॉर्मैट की खास जानकारी देने वाले एट्रिब्यूट की जगह, वैरिएबल स्ट्रिंग की वैल्यू का इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए फ़ॉर्मैट करना और स्टाइल बनाना देखें. |
title_loc_key |
ऐप्लिकेशन के स्ट्रिंग रिसॉर्स में मौजूद टाइटल स्ट्रिंग की कुंजी, जिसका इस्तेमाल टाइटल टेक्स्ट को स्थानीय भाषा में उपलब्ध कराने के लिए किया जाता है. ज़्यादा जानकारी के लिए, स्ट्रिंग रिसॉर्स देखें. |
title_loc_args[] |
title_loc_key में मौजूद फ़ॉर्मैट तय करने वाले की जगह इस्तेमाल की जाने वाली वैरिएबल स्ट्रिंग वैल्यू. इसका इस्तेमाल, उपयोगकर्ता के मौजूदा स्थानीय भाषा के अनुसार शीर्षक टेक्स्ट को स्थानीय भाषा में लिखने के लिए किया जाता है. ज़्यादा जानकारी के लिए फ़ॉर्मैट करना और स्टाइल बनाना देखें. |
channel_id |
सूचना का चैनल आईडी (Android O में नया). इस चैनल आईडी की कोई भी सूचना मिलने से पहले, ऐप्लिकेशन को इस चैनल आईडी के साथ एक चैनल बनाना होगा. अगर आप अनुरोध में यह चैनल आईडी नहीं भेजते हैं या ऐप्लिकेशन ने अभी तक चैनल आईडी नहीं बनाया है, तो FCM, ऐप्लिकेशन मेनिफ़ेस्ट में बताए गए चैनल आईडी का इस्तेमाल करता है. |
ticker |
"टिकर" सेट करता है टेक्स्ट होता है. इसे सुलभता सेवाओं को भेजा जाता है. एपीआई लेवल 21 ( |
sticky |
अगर नीति को 'गलत है' पर सेट किया जाता है या सेट नहीं किया जाता है, तो पैनल में उपयोगकर्ता के क्लिक करने पर यह अपने-आप खारिज हो जाती है. अगर नीति को 'सही है' पर सेट किया जाता है, तो उपयोगकर्ता के क्लिक करने के बाद भी यह सूचना दिखती रहती है. |
event_time |
सूचना में इवेंट के होने का समय सेट करें. पैनल में सूचनाएं इस समय के हिसाब से क्रम में लगी हैं. समय को protobuf.timestamp का इस्तेमाल करके दिखाया जाता है. आरएफ़सी3339 यूटीसी "ज़ुलु" में टाइमस्टैंप फ़ॉर्मैट, नैनोसेकंड रिज़ॉल्यूशन और ज़्यादा से ज़्यादा नौ फ़्रैक्शनल अंकों के साथ हो सकता है. उदाहरण: |
local_only |
सेट करें कि यह नोटिफ़िकेशन केवल वर्तमान डिवाइस के लिए प्रासंगिक है या नहीं. कुछ सूचनाओं को रिमोट डिसप्ले के लिए दूसरे डिवाइसों पर जोड़ा जा सकता है, जैसे कि Wear OS स्मार्टवॉच. इस संकेत को यह सुझाव देने के लिए सेट किया जा सकता है कि इस सूचना को ऐक्सेस न किया जाए. Wear OS से जुड़ी गाइड देखें |
notification_priority |
इस सूचना को प्राथमिकता के हिसाब से सेट करें. प्राथमिकता से यह पता चलता है कि इस सूचना को देखकर उपयोगकर्ताओं का कितना ध्यान जा सकता है. कुछ परिस्थितियों में, कम प्राथमिकता वाली सूचनाएं उपयोगकर्ता से छिपी हो सकती हैं, जबकि उपयोगकर्ता को ज़्यादा प्राथमिकता वाली सूचना के लिए रोका जा सकता है. एक जैसी प्राथमिकताएं सेट करने का असर, अलग-अलग प्लैटफ़ॉर्म पर थोड़ा अलग हो सकता है. ध्यान दें कि यह प्राथमिकता, |
default_sound |
अगर इसे 'सही है' पर सेट किया जाता है, तो सूचना के लिए Android फ़्रेमवर्क की डिफ़ॉल्ट आवाज़ का इस्तेमाल करें. डिफ़ॉल्ट वैल्यू, config.xml में दी गई हैं. |
default_vibrate_timings |
अगर इसे 'सही है' पर सेट किया जाता है, तो सूचना के लिए Android फ़्रेमवर्क के डिफ़ॉल्ट वाइब्रेशन पैटर्न का इस्तेमाल करें. डिफ़ॉल्ट वैल्यू, config.xml में दी गई हैं. अगर |
default_light_settings |
अगर नीति को 'सही है' पर सेट किया जाता है, तो सूचना पाने के लिए Android फ़्रेमवर्क की, एलईडी लाइट की डिफ़ॉल्ट सेटिंग का इस्तेमाल करें. डिफ़ॉल्ट वैल्यू, config.xml में दी गई हैं. अगर |
vibrate_timings[] |
इस्तेमाल करने के लिए वाइब्रेशन का पैटर्न सेट करें. वाइब्रेटर चालू या बंद करने के लिए, protobuf.Duration के कलेक्शन को पास करें. पहली वैल्यू से पता चलता है कि सेकंड में कुल नौ दशमलव अंक, जो ' |
visibility |
सूचना की Notification.सूचना सेट करें. |
notification_count |
इस सूचना में दिखाए जाने वाले आइटम की संख्या सेट करता है. इसे बैज की संख्या के तौर पर, उन लॉन्चर के लिए दिखाया जा सकता है जिन पर बैज काम करता है.सूचना का बैज देखें. उदाहरण के लिए, यह तब उपयोगी हो सकता है, जब आप एक से ज़्यादा नए मैसेज दिखाने के लिए सिर्फ़ एक सूचना का इस्तेमाल कर रहे हों, लेकिन आपको यहां बताई गई संख्या से नए मैसेज की कुल संख्या दिखानी हो. अगर यह संख्या शून्य है या सेट नहीं की गई है, तो बैजिंग का समर्थन करने वाले सिस्टम डिफ़ॉल्ट का उपयोग करते हैं, जो हर बार कोई नई सूचना आने पर देर तक दबाएं मेनू पर दिखाई जाने वाली संख्या को बढ़ाने के लिए है. |
light_settings |
डिवाइस पर एलईडी उपलब्ध होने पर, सूचना की एलईडी ब्लिंक करने की दर और रंग को कंट्रोल करने की सेटिंग. ब्लिंक करने के कुल समय को ओएस कंट्रोल करता है. |
image |
इसमें उस इमेज का यूआरएल होता है जो सूचना में दिखाई जाएगी. अगर यह मौजूद होगा, तो यह |
bypass_proxy_notification |
अगर नीति को सेट किया जाता है, तो डिवाइस पर डिलीवर की गई डिसप्ले सूचनाओं को प्रॉक्सी के बजाय ऐप्लिकेशन मैनेज करेगा. |
proxy |
यह कंट्रोल करने के लिए सेट करना कि सूचना को कब प्रॉक्सी किया जा सकता है. |
सूचना की प्राथमिकता
किसी सूचना के प्राथमिकता लेवल.
एनम्स | |
---|---|
PRIORITY_UNSPECIFIED |
अगर प्राथमिकता नहीं बताई गई है, तो सूचना की प्राथमिकता PRIORITY_DEFAULT पर सेट होती है. |
PRIORITY_MIN |
सूचना की सबसे कम प्राथमिकता. ऐसा हो सकता है कि इस PRIORITY_MIN वाली सूचनाएं, उपयोगकर्ता को कुछ खास मामलों में न दिखें. उदाहरण के लिए, पूरी जानकारी वाला सूचना लॉग. |
PRIORITY_LOW |
सूचना की प्राथमिकता कम करें. यूज़र इंटरफ़ेस (यूआई) PRIORITY_DEFAULT में सूचनाओं के मुकाबले सूचनाओं को छोटा या सूची में किसी दूसरी जगह पर दिखाने का विकल्प चुन सकता है. |
PRIORITY_DEFAULT |
सूचना की डिफ़ॉल्ट प्राथमिकता. अगर ऐप्लिकेशन खुद की सूचनाओं को प्राथमिकता नहीं देता है, तो सभी सूचनाओं के लिए इस वैल्यू का इस्तेमाल करें. |
PRIORITY_HIGH |
सूचना पाने के लिए ज़्यादा प्राथमिकता. ज़्यादा ज़रूरी सूचनाओं या चेतावनियों के लिए, इसका इस्तेमाल करें. यूज़र इंटरफ़ेस (यूआई), PRIORITY_DEFAULT के साथ मिलने वाली सूचनाओं के मुकाबले, इन सूचनाओं को बड़ा या सूचना वाली सूचियों में किसी दूसरी जगह पर दिखाने का विकल्प चुन सकता है. |
PRIORITY_MAX |
सूचना की सबसे ज़्यादा प्राथमिकता. इसका इस्तेमाल ऐप्लिकेशन के सबसे अहम आइटम के लिए करें. इनके लिए उपयोगकर्ता को तुरंत ध्यान देने या कुछ इनपुट करने की ज़रूरत होती है. |
किसको दिखे
सूचना के दिखने के अलग-अलग लेवल.
एनम्स | |
---|---|
VISIBILITY_UNSPECIFIED |
अगर इसके लिए कोई तय नहीं किया गया है, तो डिफ़ॉल्ट रूप से Visibility.PRIVATE पर सेट करें. |
PRIVATE |
यह सूचना सभी लॉकस्क्रीन पर दिखाएं, लेकिन सुरक्षित लॉकस्क्रीन पर संवेदनशील या निजी जानकारी छिपाएं. |
PUBLIC |
इस सूचना को सभी लॉकस्क्रीन पर पूरी तरह से दिखाएं. |
SECRET |
सुरक्षित लॉकस्क्रीन पर, इस सूचना का कोई भी हिस्सा न दिखाएं. |
लाइट की सेटिंग
सूचना की एलईडी कंट्रोल करने की सेटिंग.
JSON के काेड में दिखाना |
---|
{
"color": {
object ( |
फ़ील्ड | |
---|---|
color |
ज़रूरी है. |
light_on_duration |
ज़रूरी है. सेकंड में कुल नौ दशमलव अंक, जो ' |
light_off_duration |
ज़रूरी है. सेकंड में कुल नौ दशमलव अंक, जो ' |
रंग
RGBA कलर स्पेस में कोई रंग दिखाता है. यह प्रज़ेंटेशन इस तरह से डिज़ाइन किया गया है कि कॉम्पैक्टनेस के बजाय, अलग-अलग भाषाओं में रंग को आसानी से समझा जा सके और उन्हें अलग-अलग भाषाओं में कैसे दिखाया जा सके. उदाहरण के लिए, इस प्रतिनिधित्व के फ़ील्ड को Java में java.awt.Color
के कंस्ट्रक्टर को आसानी से दिया जा सकता है; इसे iOS में, UIColor के +colorWithRed:green:blue:alpha
तरीके में भी आसानी से उपलब्ध कराया जा सकता है; और बस थोड़ी सी मेहनत करके, इसे JavaScript में सीएसएस rgba()
स्ट्रिंग में आसानी से फ़ॉर्मैट किया जा सकता है.
इस रेफ़रंस पेज में उस ऐब्सलूट कलर स्पेस से जुड़ी जानकारी नहीं है जिसका इस्तेमाल आरजीबी वैल्यू को समझने के लिए किया जाना चाहिए. उदाहरण के लिए, sRGB, Adobe RGB, DCI-P3, और BT.2020. डिफ़ॉल्ट रूप से, ऐप्लिकेशन को sRGB में कलर स्पेस के तौर पर माना जाना चाहिए.
जब रंग की समानता तय करने की ज़रूरत हो, तो लागू करने पर, जब तक कि कोई और दस्तावेज़ न हो, दो रंगों को बराबर मानें. अगर सभी लाल, हरे, नीले और ऐल्फ़ा वैल्यू में से हर एक की वैल्यू में ज़्यादा से ज़्यादा 1e-5
का अंतर हो.
उदाहरण (Java):
import com.google.type.Color;
// ...
public static java.awt.Color fromProto(Color protocolor) {
float alpha = protocolor.hasAlpha()
? protocolor.getAlpha().getValue()
: 1.0;
return new java.awt.Color(
protocolor.getRed(),
protocolor.getGreen(),
protocolor.getBlue(),
alpha);
}
public static Color toProto(java.awt.Color color) {
float red = (float) color.getRed();
float green = (float) color.getGreen();
float blue = (float) color.getBlue();
float denominator = 255.0;
Color.Builder resultBuilder =
Color
.newBuilder()
.setRed(red / denominator)
.setGreen(green / denominator)
.setBlue(blue / denominator);
int alpha = color.getAlpha();
if (alpha != 255) {
result.setAlpha(
FloatValue
.newBuilder()
.setValue(((float) alpha) / denominator)
.build());
}
return resultBuilder.build();
}
// ...
उदाहरण (iOS / Obj-C):
// ...
static UIColor* fromProto(Color* protocolor) {
float red = [protocolor red];
float green = [protocolor green];
float blue = [protocolor blue];
FloatValue* alpha_wrapper = [protocolor alpha];
float alpha = 1.0;
if (alpha_wrapper != nil) {
alpha = [alpha_wrapper value];
}
return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
}
static Color* toProto(UIColor* color) {
CGFloat red, green, blue, alpha;
if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
return nil;
}
Color* result = [[Color alloc] init];
[result setRed:red];
[result setGreen:green];
[result setBlue:blue];
if (alpha <= 0.9999) {
[result setAlpha:floatWrapperWithValue(alpha)];
}
[result autorelease];
return result;
}
// ...
उदाहरण (JavaScript):
// ...
var protoToCssColor = function(rgb_color) {
var redFrac = rgb_color.red || 0.0;
var greenFrac = rgb_color.green || 0.0;
var blueFrac = rgb_color.blue || 0.0;
var red = Math.floor(redFrac * 255);
var green = Math.floor(greenFrac * 255);
var blue = Math.floor(blueFrac * 255);
if (!('alpha' in rgb_color)) {
return rgbToCssColor(red, green, blue);
}
var alphaFrac = rgb_color.alpha.value || 0.0;
var rgbParams = [red, green, blue].join(',');
return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};
var rgbToCssColor = function(red, green, blue) {
var rgbNumber = new Number((red << 16) | (green << 8) | blue);
var hexString = rgbNumber.toString(16);
var missingZeros = 6 - hexString.length;
var resultBuilder = ['#'];
for (var i = 0; i < missingZeros; i++) {
resultBuilder.push('0');
}
resultBuilder.push(hexString);
return resultBuilder.join('');
};
// ...
JSON के काेड में दिखाना |
---|
{ "red": number, "green": number, "blue": number, "alpha": number } |
फ़ील्ड | |
---|---|
red |
इंटरवल [0, 1] में वैल्यू के तौर पर रंग में लाल रंग. |
green |
इंटरवल [0, 1] में वैल्यू के तौर पर रंग में हरे रंग की मात्रा. |
blue |
इंटरवल [0, 1] में वैल्यू के तौर पर रंग में नीले रंग की मात्रा. |
alpha |
इस रंग का वह हिस्सा, जिसे पिक्सल पर लागू किया जाना चाहिए. इसका मतलब है कि आखिरी पिक्सल का रंग समीकरण से तय होता है:
इसका मतलब है कि 1.0 वैल्यू किसी ठोस रंग से मेल खाती है, जबकि 0.0 वैल्यू पूरी तरह से पारदर्शी रंग से मेल खाती है. यह किसी सामान्य फ़्लोट स्केलर के बजाय रैपर मैसेज का इस्तेमाल करता है, ताकि डिफ़ॉल्ट वैल्यू और सेट न की जा रही वैल्यू के बीच अंतर किया जा सके. अगर छोड़ दिया जाता है, तो इस रंग ऑब्जेक्ट को एक ठोस रंग के रूप में रेंडर किया जाता है (जैसे कि ऐल्फ़ा वैल्यू को साफ़ तौर पर 1.0 का मान दिया गया था). |
प्रॉक्सी
यह कंट्रोल करने के लिए सेट करना कि सूचना को कब प्रॉक्सी किया जा सकता है.
एनम्स | |
---|---|
PROXY_UNSPECIFIED |
अगर इसके लिए कोई तय नहीं किया गया है, तो डिफ़ॉल्ट रूप से Proxy.IF_PRIORITY_LOWERED पर सेट करें. |
ALLOW |
इस सूचना को प्रॉक्सी करने की कोशिश करें. |
DENY |
इस सूचना को प्रॉक्सी न करें. |
IF_PRIORITY_LOWERED |
इस सूचना को प्रॉक्सी करने की कोशिश सिर्फ़ तब करें, जब डिवाइस पर इसकी AndroidMessagePriority को HIGH से कम करके NORMAL कर दिया गया हो. |
AndroidFcm के विकल्प
Android के लिए FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प.
JSON के काेड में दिखाना |
---|
{ "analytics_label": string } |
फ़ील्ड | |
---|---|
analytics_label |
मैसेज के आंकड़ों के डेटा से जुड़ा लेबल. |
वेबपुश कॉन्फ़िगरेशन
Webpush प्रोटोकॉल के विकल्प.
JSON के काेड में दिखाना |
---|
{
"headers": {
string: string,
...
},
"data": {
string: string,
...
},
"notification": {
object
},
"fcm_options": {
object ( |
फ़ील्ड | |
---|---|
headers |
वेबपुश प्रोटोकॉल में तय किए गए एचटीटीपी हेडर. काम करने वाले हेडर के लिए Webpush प्रोटोकॉल देखें, उदाहरण के लिए "टीटीएल": "15". एक ऑब्जेक्ट, जिसमें |
data |
आर्बिट्रेटी की/वैल्यू पेलोड. अगर यह मौजूद होगा, तो यह एक ऑब्जेक्ट, जिसमें |
notification |
JSON ऑब्जेक्ट के तौर पर, वेब सूचना के विकल्प. Web Notification API में बताए गए तरीके के हिसाब से, सूचना इंस्टेंस प्रॉपर्टी के साथ काम करता है. अगर यह एट्रिब्यूट मौजूद है, तो "टाइटल" और "मुख्य हिस्सा" फ़ील्ड, |
fcm_options |
वेब के लिए FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प. |
WebpushFcmविकल्प
वेब के लिए FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प.
JSON के काेड में दिखाना |
---|
{ "link": string, "analytics_label": string } |
फ़ील्ड | |
---|---|
link |
उपयोगकर्ता के किसी सूचना पर क्लिक करने पर खुलने वाला लिंक. यूआरएल की सभी वैल्यू के लिए, एचटीटीपीएस ज़रूरी है. |
analytics_label |
मैसेज के आंकड़ों के डेटा से जुड़ा लेबल. |
ऐप्लिकेशन कॉन्फ़िगरेशन
Apple Push Notification Service के खास विकल्प.
JSON के काेड में दिखाना |
---|
{
"headers": {
string: string,
...
},
"payload": {
object
},
"fcm_options": {
object ( |
फ़ील्ड | |
---|---|
headers |
Apple Push Notification Service में बताए गए एचटीटीपी अनुरोध के हेडर. बैकएंड में, 30 दिनों के एक ऑब्जेक्ट, जिसमें |
payload |
एपीएन पेलोड, JSON ऑब्जेक्ट के तौर पर मौजूद होते हैं. इनमें |
fcm_options |
iOS के लिए, FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प. |
ApnsFcmविकल्प
iOS के लिए, FCM SDK टूल की ओर से दी गई सुविधाओं के विकल्प.
JSON के काेड में दिखाना |
---|
{ "analytics_label": string, "image": string } |
फ़ील्ड | |
---|---|
analytics_label |
मैसेज के आंकड़ों के डेटा से जुड़ा लेबल. |
image |
इसमें उस इमेज का यूआरएल होता है जो सूचना में दिखाई जाएगी. अगर यह मौजूद होगा, तो यह |
एफ़सीएम ऑप्शन
FCM SDK टूल के ज़रिए उपलब्ध कराई गई सुविधाओं के लिए प्लैटफ़ॉर्म के अलग-अलग विकल्प.
JSON के काेड में दिखाना |
---|
{ "analytics_label": string } |
फ़ील्ड | |
---|---|
analytics_label |
मैसेज के आंकड़ों के डेटा से जुड़ा लेबल. |
तरीके |
|
---|---|
|
बताए गए टारगेट (रजिस्ट्रेशन टोकन, विषय या शर्त) को मैसेज भेजें. |