वेबपेज से इंस्टॉलेशन की सुविधा बंद करने पर माइग्रेशन के बारे में अक्सर पूछे जाने वाले सवाल

वेबपेज से इंस्टॉलेशन की सुविधा 12/06/2018 से काम नहीं कर रही है. ज़्यादा जानकारी के लिए, हमारा Chromium ब्लॉग पोस्ट पढ़ें.

टाइमलाइन से जुड़े सवाल

12-06-2018 में क्या बदल जाएगा?

12-06-2018 को या उसके बाद पहली बार पब्लिश किए गए एक्सटेंशन और ऐप्लिकेशन जैसे किसी भी 'Chrome वेब स्टोर' आइटम पर इनलाइन-इंस्टॉलेशन बंद कर दिया जाएगा. "बंद है" का मतलब है कि वेबपेज से इंस्टॉलेशन की कोशिशों को, 'Chrome वेब स्टोर' पर आइटम की ज़्यादा जानकारी वाले पेज पर अपने-आप रीडायरेक्ट कर दिया जाएगा. यहां उपयोगकर्ता, इंस्टॉल करने की प्रोसेस को पूरा कर सकते हैं. स्टोर में मौजूद उन आइटम में कोई बदलाव नहीं होगा जो इस तारीख से पहले पहली बार पब्लिश हुए थे.

12-09-2018 में क्या बदल जाएगा?

पब्लिश करने की तारीख पर ध्यान दिए बिना, सभी आइटम पर यह सुविधा बंद कर दी जाएगी. सभी आइटम को वेबपेज से इंस्टॉल करने के 100% मामलों को 'Chrome वेब स्टोर' पर रीडायरेक्ट कर दिया जाएगा. यहां उपयोगकर्ता, इंस्टॉल की प्रोसेस पूरी कर सकते हैं.

मुझे 12-09-2018 से पहले क्या करना होगा?

आपको कुछ भी बदलने की ज़रूरत नहीं है. हालांकि, हमारा सुझाव है कि आप इंस्टॉल करने के फ़्लो की समीक्षा करें और chrome.webstore.install() कॉल को सीधे अपने आइटम के'Chrome वेब स्टोर' पेज पर एक नेविगेशन से बदलें. अब ऐसा करने से आपको यह पुष्टि करने में मदद मिलेगी कि यह सबसे अच्छा उपयोगकर्ता अनुभव दे रहा है.

हमारा सुझाव है कि आप अपनी साइट पर इंस्टॉल फ़्लो में, नया Chrome Web Store डाउनलोड बैज शामिल करें.

M71 में क्या बदलाव होगा (दिसंबर 2018)?

M71 और उसके बाद के वर्शन में, Chrome chrome.webstore.install() तरीके के साथ काम नहीं करेगा. साथ ही, इस तरीके को कॉल नहीं किया जा सकेगा. इसकी वजह से, आपकी साइट पर ऐप्लिकेशन इंस्टॉल करने में समस्या आ सकती है. इस समय, एपीआई को कॉल करने पर JavaScript टाइप गड़बड़ी होती है. आपको इस तारीख से पहले, एपीआई तरीके से किए गए सभी कॉल हटा देने चाहिए.

इनलाइन-इंस्टॉलेशन बंद होने के बाद

इंस्टॉल करने का फ़्लो कैसा दिखेगा?

जब आपकी साइट chrome.webstore.install() को कॉल करेगी, तो Chrome तुरंत डायलॉग ट्रिगर नहीं करेगा.इसके बजाय, Chrome WebStore के ज़्यादा जानकारी वाले पेज (जैसे कि https://chrome.google.com/webstore/detail/EXTENSION_ID) पर एक नया फ़ोरग्राउंड टैब खोलेगा. वहां से, उपयोगकर्ता "इंस्टॉल करें" पर क्लिक करके इंस्टॉल करने की स्टैंडर्ड प्रोसेस पूरी कर सकता है. इसके बाद, एक डायलॉग बॉक्स उपयोगकर्ता को अनुमतियां पढ़ने और इंस्टॉल करने या रद्द करने का अनुरोध करेगा. डायलॉग खारिज करने के बाद, वह टैब Chrome वेब स्टोर पर मौजूद रहेगा.

मुझे कैसे पता चलेगा कि इंस्टॉल करने की प्रोसेस पूरी हुई या नहीं?

जब chrome.webstore.install() को कॉल किया जाता है, तो काम न करने वाला कॉलबैक ट्रिगर होगा. इस दौरान यह गड़बड़ी दिखेगी कि उपयोगकर्ता को Chrome Web Store पर रीडायरेक्ट किया गया है. इससे यह पता नहीं चलेगा कि आपका इंस्टॉलेशन पूरा हुआ या नहीं. याद रखें कि Chrome 71 से, chrome.webstore.install() को कॉल नहीं किए जाएंगे. इसलिए, किसी भी गड़बड़ी को कॉल नहीं किया जाएगा.

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

"externally_connectable": {
  "matches": ["https://www.example.com/*"]
}
// JS running on https://example.com
try {
  chrome.runtime.sendMessage('EXTENSION_ID', MESSAGE, function() {
    if (chrome.runtime.lastError) {
      // Extension is not installed.
    }
  });
} catch (e) {
  // Extension is not installed.
}

इन्हें बदलें:

  • EXTENSION_ID: आपके एक्सटेंशन का आईडी.
  • MESSAGE: एक्सटेंशन को भेजी जाने वाली मैसेज स्ट्रिंग या ऑब्जेक्ट.

इंस्टॉल करने के बाद, मैं जानकारी देने वाले पेज को कैसे ट्रिगर करूं?

इंस्टॉल करने के बाद, chrome.runtime इवेंट का इस्तेमाल करें और नया टैब खोलें. यहां अपने बैकग्राउंड पेज में इस्तेमाल करने का एक उदाहरण दिया गया है:

chrome.runtime.onInstalled.addListener(function listener(details) {
  if (details.reason === chrome.runtime.OnInstalledReason.INSTALL) {
    chrome.tabs.create({url: "https://www.example.com/"});
    chrome.runtime.onInstalled.removeListener(listener);
  }
});

क्या मुझे अपवाद मिल सकता है?

नहीं. नीति में किया गया यह बदलाव, बिना किसी अपवाद के Chrome Web Store में मौजूद सभी आइटम पर लागू होता है.