सूचना ट्रिगर करने वाला एपीआई

सूचना ट्रिगर करने की सुविधा की मदद से, ऐसी स्थानीय सूचनाएं शेड्यूल की जा सकती हैं जिनके लिए नेटवर्क कनेक्शन की ज़रूरत नहीं होती. इस वजह से, इन्हें कैलेंडर ऐप्लिकेशन जैसे इस्तेमाल के लिए बेहतर बनाया जाता है.

सूचना ट्रिगर क्या होते हैं?

वेब डेवलपर इसका इस्तेमाल करके सूचनाएं दिखा सकते हैं Web Notifications API. इस सुविधा का उपयोग अक्सर Push API का इस्तेमाल, उपयोगकर्ता को समय के हिसाब से संवेदनशील जानकारी देने के लिए किया जाता है, जैसे ताज़ा खबरों वाले इवेंट या मिलने वाले मैसेज के तौर पर. सूचनाओं को, उपयोगकर्ता के डिवाइस पर.

Push API के साथ समस्या यह है कि यह उन सूचनाओं को ट्रिगर करने के लिए भरोसेमंद नहीं है जिन्हें ज़रूरी होना चाहिए तब दिखाया जाता है, जब समय या जगह जैसी कोई खास शर्त पूरी होती है. समय-आधारित स्थिति एक कैलेंडर नोटिफ़िकेशन है जो आपको यहां अपने बॉस के साथ हुई एक ज़रूरी मीटिंग की याद दिलाती है दोपहर 2 बजे. जगह के हिसाब से स्थिति का एक उदाहरण, ऐसी सूचना है जो आपको दूध खरीदने के बारे में याद दिलाती है किराने की दुकान के आस-पास के हिस्से में जाने पर. नेटवर्क कनेक्टिविटी या बैटरी की बचत डोज़ मोड जैसी सुविधाओं से पुश आधारित नोटिफ़िकेशन की डिलीवरी में देरी हो सकती है.

सूचना वाले ट्रिगर इस समस्या को हल करते हैं. इसके लिए, सूचना को ट्रिगर करने की सुविधा के साथ शेड्यूल किया जा सकता है शर्त पूरी कर सकें, ताकि ऑपरेटिंग सिस्टम सही समय पर सूचना डिलीवर कर सके भले ही, कोई नेटवर्क कनेक्टिविटी न हो या डिवाइस बैटरी सेवर मोड में हो.

उपयोग के उदाहरण

कैलेंडर ऐप्लिकेशन, उपयोगकर्ता को आने वाले इवेंट के बारे में याद दिलाने के लिए, समय के हिसाब से सूचना ट्रिगर का इस्तेमाल कर सकते हैं मीटिंग. कैलेंडर ऐप्लिकेशन की डिफ़ॉल्ट सूचना स्कीम, उपयोगकर्ता को पहली बार सूचना दिखाने के लिए हो सकती है मीटिंग से एक घंटे पहले सूचना और पांच मिनट पहले दूसरी ज़रूरी सूचना से पहले.

कोई टीवी नेटवर्क, लोगों को याद दिला सकता है कि उनका पसंदीदा टीवी शो शुरू होने वाला है या कोई कॉन्फ़्रेंस लाइव होने वाली है स्ट्रीम शुरू होने वाली है.

टाइम ज़ोन से जुड़ी कन्वर्ज़न साइटें अपने उपयोगकर्ताओं को शेड्यूल करने की सुविधा देने के लिए, समय के आधार पर सूचना ट्रिगर का इस्तेमाल कर सकती हैं टेलीफ़ोन कॉन्फ़्रेंस या वीडियो कॉल के लिए अलार्म.

मौजूदा स्थिति

चरण स्थिति
1. जानकारी देने वाला वीडियो बनाएं पूरा हुआ
2. स्पेसिफ़िकेशन का शुरुआती ड्राफ़्ट बनाएं Not started
3. सुझाव, शिकायत या राय लें और डिज़ाइन पर दोहराएं. प्रोसेस जारी है
4. ऑरिजिन ट्रायल पूरा हुआ
5. लॉन्च करें Not started

सूचना ट्रिगर को इस्तेमाल करने का तरीका

about://flags के ज़रिए चालू करना

ऑरिजिन ट्रायल टोकन के बिना, Notification Triggers API का स्थानीय तौर पर इस्तेमाल करने के लिए, about://flags में #enable-experimental-web-platform-features फ़्लैग.

सुविधा की पहचान

आप showTrigger प्रॉपर्टी:

if ('showTrigger' in Notification.prototype) {
  /* Notification Triggers supported */
}

सूचना शेड्यूल करना

किसी सूचना को शेड्यूल करना, एक सामान्य पुश नोटिफ़िकेशन दिखाने जैसा ही है. हालांकि, इसके लिए आपको ये काम करने होंगे इस प्रॉपर्टी की वैल्यू के तौर पर, TimestampTrigger ऑब्जेक्ट के साथ showTrigger शर्त वाली प्रॉपर्टी पास करें सूचना का options ऑब्जेक्ट.

const createScheduledNotification = async (tag, title, timestamp) => {
  const registration = await navigator.serviceWorker.getRegistration();
  registration.showNotification(title, {
    tag: tag,
    body: 'This notification was scheduled 30 seconds ago',
    showTrigger: new TimestampTrigger(timestamp + 30 * 1000),
  });
};

शेड्यूल की गई सूचना को रद्द करना

शेड्यूल की गई सूचनाएं रद्द करने के लिए, पहले किसी सूचना से मेल खाने वाली सभी सूचनाओं की सूची का अनुरोध करें ServiceWorkerRegistration.getNotifications() के ज़रिए टैग करें. ध्यान दें कि आपको शेड्यूल की गई सूचनाओं को सूची में शामिल करने के लिए, includeTriggered फ़्लैग:

const cancelScheduledNotification = async (tag) => {
  const registration = await navigator.serviceWorker.getRegistration();
  const notifications = await registration.getNotifications({
    tag: tag,
    includeTriggered: true,
  });
  notifications.forEach((notification) => notification.close());
};

डीबग करना

सूचनाओं को डीबग करने के लिए, Chrome DevTools सूचना पैनल का इस्तेमाल किया जा सकता है. शुरू करने के लिए डीबग करने के लिए, इवेंट रिकॉर्ड करना शुरू करें दबाएं इवेंट रिकॉर्ड करना शुरू करें या Control+E (Mac पर Command+E) दबाएं. Chrome DevTools रिकॉर्ड तीन दिन के लिए सभी सूचना इवेंट. इनमें शेड्यूल की गई, दिखाई गई, और बंद की गई सूचनाएं भी शामिल हैं. DevTools बंद होने पर भी काम आ सकता है.

शेड्यूल किए गए सूचना इवेंट को Chrome DevTools के सूचना पैनल में लॉग किया गया है. यह पैनल, ऐप्लिकेशन पैनल में मौजूद है.
शेड्यूल की गई सूचना.
Chrome DevTools के सूचना पैनल में, दिखाया गया सूचना इवेंट लॉग किया गया था.
दिखने वाली सूचना.

डेमो

आप डेमो में कार्रवाई में सूचना ट्रिगर देख सकते हैं, जिससे आप शेड्यूल की गई सूचनाओं को सूची में जोड़ने के साथ-साथ उन्हें रद्द भी किया जा सकता है. सोर्स कोड यहां उपलब्ध है ग्लिच.

सूचना ट्रिगर करने वाले वेब ऐप्लिकेशन का स्क्रीनशॉट.
सूचना, डेमो को ट्रिगर करती है.

सुरक्षा और अनुमतियां

Chrome टीम ने खास सिद्धांतों का इस्तेमाल करके, Notification Triggers API को डिज़ाइन और लागू किया है शक्तिशाली वेब प्लैटफ़ॉर्म सुविधाओं का ऐक्सेस कंट्रोल करना में बताया गया है. इसमें उपयोगकर्ता भी शामिल है कंट्रोल, पारदर्शिता, और एर्गोनॉमिक्स. इस एपीआई को सर्विस वर्कर की ज़रूरत होती है, इसलिए इस एपीआई के लिए सुरक्षित कॉन्टेक्स्ट प्रोसेस करता है. एपीआई का इस्तेमाल करने के लिए, सामान्य पुश नोटिफ़िकेशन के समान अनुमति की ज़रूरत होती है.

ऐप्लिकेशन पर उपयोगकर्ताओं के कंट्रोल की जानकारी

यह एपीआई सिर्फ़ ServiceWorkerRegistration के लिए उपलब्ध है. इसका मतलब है कि सभी के लिए आवश्यक डेटा को उसी संदर्भ में संग्रहित किया जाता है और जब सर्विस वर्कर हटाया जाता है या उपयोगकर्ता ऑरिजिन के लिए पूरा साइट डेटा मिटा देता है. कुकी ब्लॉक करने से सेवा बंद भी हो सकती है काम नहीं करने वाले लोग Chrome में इंस्टॉल नहीं होंगे और इसलिए इस एपीआई का इस्तेमाल नहीं किया जा सकेगा. नोटिफ़िकेशन ये काम कर सकते हैं उपयोगकर्ता के लिए साइट की सेटिंग में हमेशा बंद रहना चाहिए.

पारदर्शिता

पुश एपीआई के उलट, यह एपीआई नेटवर्क पर निर्भर नहीं होता. इसमें शेड्यूल की गई सूचनाएं शामिल होती हैं सभी ज़रूरी डेटा को पहले ही इकट्ठा करना ज़रूरी है. इसमें badge, icon और image एट्रिब्यूट. इसका मतलब है कि शेड्यूल की गई सूचना दिखाने की निगरानी, डेवलपर नहीं कर सकता और इसमें सर्विस वर्कर को तब तक जगाना शामिल नहीं होता, जब तक उपयोगकर्ता सूचना से इंटरैक्ट नहीं करता. इस वजह से, फ़िलहाल डेवलपर के पास उपयोगकर्ता के बारे में जानकारी पाने का कोई तरीका नहीं है निजता का उल्लंघन करने वाले तरीकों का इस्तेमाल करके, जैसे कि आईपी पते के जियोलोकेशन लुकअप का इस्तेमाल किया जा सकता है. इस डिज़ाइन में सुविधा को ऑपरेटिंग सिस्टम से उपलब्ध कराए गए शेड्यूल करने के तरीकों में वैकल्पिक रूप से टैप करने की अनुमति देता है जैसे कि Android का AlarmManager, जिससे बैटरी बचाने में मदद मिलती है.

सुझाव/राय दें या शिकायत करें

Chrome टीम, सूचना ट्रिगर करने के आपके अनुभवों के बारे में जानना चाहती है.

हमें एपीआई के डिज़ाइन के बारे में बताएं

क्या एपीआई में ऐसा कुछ है जो आपकी उम्मीद के मुताबिक काम नहीं करता? या कुछ तरीके उपलब्ध नहीं हैं या प्रॉपर्टी से जोड़ना होगा? सुरक्षा से जुड़े सवाल पूछने या टिप्पणी करने के लिए मॉडल? सूचना, GitHub रेपो को ट्रिगर करती है, पर स्पेसिफ़िकेशन से जुड़ी समस्या दर्ज करें या अपनी राय पहले से मौजूद हैं.

क्या लागू करने में कोई समस्या हुई?

क्या आपको Chrome को लागू करने में कोई गड़बड़ी मिली? या क्या लागू करने का तरीका, स्पेसिफ़िकेशन से अलग है? new.crbug.com पर जाकर, गड़बड़ी की शिकायत करें. ज़्यादा से ज़्यादा जानकारी दें, फिर से बनाने के आसान निर्देश दिए गए हैं, और कॉम्पोनेंट को UI>Notifications पर सेट किया गया है. ग्लिच बेहतरीन काम करता है ताकि वे आसानी से बग रीप्रोडक्शन शेयर कर सकें.

क्या आपको इस एपीआई का इस्तेमाल करना है?

क्या आपको अपनी साइट पर सूचना ट्रिगर करने की सुविधा इस्तेमाल करनी है? लोगों की मदद से, हम यह तय कर पाते हैं कि सुविधाएं देता है और अन्य ब्राउज़र वेंडर को दिखाता है कि उनका समर्थन करना कितना महत्वपूर्ण है. इन्हें ट्वीट भेजें हैशटैग का इस्तेमाल करने के लिए @ChromiumDev #NotificationTriggers और हमें बताएं कि उसका इस्तेमाल कहां और कैसे किया जा रहा है.

सहायक लिंक्स

स्वीकार की गई

सूचना ट्रिगर करने की सुविधा, रिचर्ड नॉल ने लागू की थी और पीटर बेवरलू का लिखा एक्सप्लेनर है, जिसमें के योगदान देते हैं. इन लोगों ने लेख की समीक्षा की है: जो मेडली, पीट लीपेज, और रिचर्ड और पीटर. हीरो इमेज: Unस्प्लैश पर लुकस ब्लेज़ेक के गाने.