होम स्क्रीन पर कुछ बदलाव किए जा सकते हैं

पीट लीपेज
पीट लेपेज

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

क्या बदलाव होने वाले हैं?

Android पर Chrome 68 से (जुलाई 2018 में, Chrome अब होम स्क्रीन पर जोड़ें) बैनर नहीं दिखाएगा. अगर साइट होम स्क्रीन पर जोड़ें विकल्प को पूरा करती है, तो Chrome मिनी-इन्फ़ोबार दिखाएगा. इसके बाद, अगर उपयोगकर्ता, मिनी-इन्फ़ोबार पर क्लिक करता है या आपने उपयोगकर्ता के जेस्चर से beforeinstallprompt इवेंट में prompt() को कॉल किया है, तो Chrome, होम स्क्रीन पर एक मोडल ऐड डायलॉग दिखाएगा.

A2HS बैनर Chrome 67 और इससे पहले के वर्शन

A2HS बैनर का स्क्रीनशॉट

जब साइट, होम स्क्रीन पर जोड़ें की ज़रूरी शर्तें पूरी करती है, तब यह अपने-आप दिखता है. साथ ही, जब साइट beforeinstallprompt इवेंट के दौरान preventDefault() को कॉल नहीं करती है

या

beforeinstallprompt इवेंट के लिए prompt() को कॉल करने पर दिखाया जाता है.

मिनी-इन्फ़ोबार Chrome 68 और इसके बाद के वर्शन

A2HS की जानकारी वाले बार का स्क्रीनशॉट
यह तब दिखता है, जब साइट, 'होम स्क्रीन पर जोड़ें' सुविधा की ज़रूरी शर्तों को पूरा करती है

अगर किसी उपयोगकर्ता ने उसे खारिज कर दिया है, तो उसे काफ़ी समय (~3 महीने) होने तक नहीं दिखाया जाएगा.

इस बात से कोई फ़र्क़ नहीं पड़ता कि preventDefault() को beforeinstallprompt इवेंट में कॉल किया गया था या नहीं.

खोज वाली पट्टी की मदद से इंस्टॉल करने का बटन शुरू करने पर, Chrome के आने वाले वर्शन में इस यूज़र इंटरफ़ेस (यूआई) को हटा दिया जाएगा.

A2HS डायलॉग

A2HS डायलॉग का स्क्रीनशॉट

Chrome 68 और उसके बाद के वर्शन में beforeinstallprompt इवेंट में, उपयोगकर्ता के हाथ के जेस्चर से prompt() को कॉल करके दिखाया जाता है.

या

यह तब दिखता है, जब कोई उपयोगकर्ता Chrome 68 और उसके बाद के वर्शन में, मिनी-इन्फ़ोबार पर टैप करता है.

या

यह तब दिखाया जाता है, जब उपयोगकर्ता Chrome के सभी वर्शन में Chrome मेन्यू में जाकर, 'होम स्क्रीन पर जोड़ें' पर क्लिक करता है.

मिनी-इन्फ़ोबार

मिनी-इन्फ़ोबार का स्क्रीनशॉट.
मिनी-इन्फ़ोबार

मिनी-इन्फ़ोबार, Chrome यूज़र इंटरफ़ेस (यूआई) का एक कॉम्पोनेंट है. इसे साइट कंट्रोल नहीं कर सकती. हालांकि, उपयोगकर्ता इसे आसानी से खारिज कर सकता है. उपयोगकर्ता के खारिज करने के बाद, यह तब तक दोबारा नहीं दिखेगा, जब तक कि काफ़ी समय बीत नहीं जाता (फ़िलहाल, तीन महीने). मिनी-इन्फ़ोबार तब दिखेगा, जब कोई साइट होम स्क्रीन पर जोड़ें की ज़रूरी शर्तें पूरी करेगी. भले ही, आपने beforeinstallprompt इवेंट में preventDefault() किया है या नहीं.

खोज वाली पट्टी में इंस्टॉल बटन का शुरुआती सिद्धांत.
खोज वाली पट्टी में 'इंस्टॉल करें' बटन का शुरुआती इस्तेमाल
मिनी-इन्फ़ोबार, Android पर Chrome के लिए एक अंतरिम अनुभव है. हम सभी प्लैटफ़ॉर्म पर एक जैसा अनुभव देने की दिशा में काम कर रहे हैं. खोज वाली पट्टी में 'इंस्टॉल करें' बटन शामिल होता है. ## होम स्क्रीन पर जोड़ने की सुविधा को ट्रिगर करना
डेस्कटॉप प्रोग्रेसिव वेब ऐप्लिकेशन पर 'इंस्टॉल करें' बटन.
डेस्कटॉप प्रोग्रेसिव वेब ऐप्लिकेशन पर 'इंस्टॉल करें' बटन को ट्रिगर करना

उपयोगकर्ता को पेज लोड (अनुमति के अनुरोधों के लिए एंटी-पैटर्न) के बारे में बताने के बजाय, यह बताएं कि आपके ऐप्लिकेशन को कुछ यूज़र इंटरफ़ेस (यूआई) के साथ इंस्टॉल किया जा सकता है. इसके बाद, मॉडल इंस्टॉल करने का अनुरोध दिखेगा. उदाहरण के लिए, इस डेस्कटॉप PWA को उपयोगकर्ता की प्रोफ़ाइल के नाम के ठीक ऊपर 'ऐप्लिकेशन इंस्टॉल करें' बटन दिखता है.

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

beforeinstallprompt इवेंट के लिए सुना जा रहा है

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

let installPromptEvent;

window.addEventListener('beforeinstallprompt', event => {
  // Prevent Chrome <= 67 from automatically showing the prompt
  event.preventDefault();
  // Stash the event so it can be triggered later.
  installPromptEvent = event;
  // Update the install UI to notify the user app can be installed
  document.querySelector('#install-button').disabled = false;
});

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

prompt() के साथ डायलॉग दिखाया जा रहा है

होम स्क्रीन में जोड़ें डायलॉग.
होम स्क्रीन डायलॉग में जोड़ें

होम स्क्रीन में जोड़ें डायलॉग दिखाने के लिए, उपयोगकर्ता जेस्चर से सेव किए गए इवेंट पर prompt() को कॉल करें. Chrome, मोडल डायलॉग दिखाएगा. इसमें लोगों से आपके ऐप्लिकेशन को उनकी होम स्क्रीन पर जोड़ने के लिए कहा जाएगा. इसके बाद, beforeinstallprompt इवेंट के लिए userChoice प्रॉपर्टी से मिला प्रॉमिस सुनें. प्रॉम्प्ट दिखने और उपयोगकर्ता के जवाब देने के बाद, यह प्रॉमिस outcome प्रॉपर्टी के साथ ऑब्जेक्ट दिखाता है.

btnInstall.addEventListener('click', () => {
  // Update the install UI to remove the install button
  document.querySelector('#install-button').disabled = true;
  // Show the modal add to home screen dialog
  installPromptEvent.prompt();
  // Wait for the user to respond to the prompt
  installPromptEvent.userChoice.then(choice => {
    if (choice.outcome === 'accepted') {
      console.log('User accepted the A2HS prompt');
    } else {
      console.log('User dismissed the A2HS prompt');
    }
    // Clear the saved prompt since it can't be used again
    installPromptEvent = null;
  });
});

आपके पास स्थगित इवेंट पर prompt() को सिर्फ़ एक बार कॉल करने का विकल्प है. अगर उपयोगकर्ता, डायलॉग में 'रद्द करें' पर क्लिक करता है, तो आपको अगले पेज नेविगेशन पर beforeinstallprompt इवेंट के ट्रिगर होने तक इंतज़ार करना होगा. परंपरागत अनुमति के अनुरोधों के उलट, 'रद्द करें' पर क्लिक करने से, prompt() पर आने वाले आने वाले कॉल ब्लॉक नहीं होंगे. ऐसा इसलिए है, क्योंकि इस कॉल को उपयोगकर्ता के जेस्चर की मदद से ही कॉल किया जाना चाहिए.

जानकारी पाने के दूसरे तरीके

ज़्यादा जानकारी के लिए ऐप्लिकेशन इंस्टॉल बैनर देखें. इसमें ये शामिल हैं:

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