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

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

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

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

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

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

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

या

beforeinstallprompt इवेंट में prompt() को कॉल करके दिखाया गया.

मिनी-जानकारी वाला बार Chrome 68 और उसके बाद के वर्शन

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

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

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

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

A2HS डायलॉग

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

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

या

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

या

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

मिनी-जानकारी वाला बार

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

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

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

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

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

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() के साथ डायलॉग दिखाया जा रहा है

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

'होम स्क्रीन पर जोड़ें' डायलॉग बॉक्स दिखाने के लिए, उपयोगकर्ता के जेस्चर के दौरान सेव किए गए इवेंट पर 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 इवेंट के बारे में जानकारी
  • यह कुकी, 'होम स्क्रीन पर जोड़ें' प्रॉम्प्ट पर उपयोगकर्ता की प्रतिक्रिया को ट्रैक करती है
  • यह कुकी ट्रैक करती है कि ऐप्लिकेशन इंस्टॉल किया गया है या नहीं
  • यह पता लगाना कि आपका ऐप्लिकेशन, इंस्टॉल किए गए ऐप्लिकेशन के तौर पर चल रहा है या नहीं