21

वर्तमान में हमारे पास कई उपयोगकर्ताओं के साथ क्रोम वेब स्टोर में एक एक्सटेंशन है। वर्तमान में हम foo.site.com तक पहुंच का अनुरोध करते हैं लेकिन अब हम अपनी अनुमतियां अपडेट करना चाहते हैं ताकि हम bar.site.com प्राप्त कर सकें।क्रोम एक्सटेंशन की अनुमतियों को अपग्रेड करना

जैसा कि मैं इसे समझता हूं, अगर हम इन दो अनुमतियों की आवश्यकता के लिए एक नया अपडेट (क्रोम वेब स्टोर में नया एक्सटेंशन संस्करण) दबाते हैं, तो मौजूदा उपयोगकर्ताओं को मैन्युअल रूप से फिर से सक्षम होने तक उनका एक्सटेंशन अक्षम कर दिया जाएगा। अद्यतन के बाद एक्सटेंशन डाउनलोड करने वाले नए उपयोगकर्ता ठीक होंगे और दोनों अनुमतियां होंगी। हालांकि, हमारे वर्तमान उपयोगकर्ताओं को अक्षम करना एक विकल्प नहीं है।

इस के आसपास पाने के लिए कोई भी तरीका है?

हमने वैकल्पिक अनुमतियों को देखा है, जो मौजूदा उपयोगकर्ताओं के लिए समस्या का समाधान करेगा (हम उन्हें अनुमतियों को अपग्रेड करने और हमारे रास्ते पर जाने के लिए बस एक बटन क्लिक करने के लिए कहेंगे)। हालांकि नए उपयोगकर्ताओं के लिए, उन्हें केवल एक्सटेंशन इंस्टॉल नहीं करना होगा बल्कि वैकल्पिक अनुमतियों को भी स्वीकार करना होगा। क्या नए उपयोगकर्ताओं को इंस्टॉल समय पर सभी अनुमति (वैकल्पिक और आवश्यक) स्वीकार करने का कोई तरीका है?

+4

आप वास्तव में पढ़ने के लिए नहीं किया था सवाल तुमने किया था। – aloo

+2

मैं इसे संबोधित कर रहा था: 'हालांकि, हमारे वर्तमान उपयोगकर्ताओं को अक्षम करना एक विकल्प नहीं है। इस के आसपास पाने के लिए कोई रास्ता?' –

+3

यह एक उपयोगी सुविधा की तरह लगता है कि नए उपयोगकर्ताओं के लिए इंस्टॉल समय पर अनुरोध किए जाने के लिए कुछ वैकल्पिक_प्रमिशन घोषित करने में सक्षम होना चाहिए। इसे http://crbug.com/new पर फ़ाइल करें? आप यह भी विचार कर सकते हैं कि क्या आपकी सभी अनुमतियों को वैकल्पिक_प्रमिशन में बदलने का अर्थ होगा ताकि आप इंस्टॉल करने के बाद एक बार अनुरोध कर सकें, या बीटा सक्रिय टैब अनुमति (http://developer.chrome.com/beta/extensions/activeTab.html) bar.site.com तक पहुंच प्राप्त करने के बजाय काम करेगा। –

उत्तर

8

हां, समाधान है। आप नई अनुमतियों को वैकल्पिक के रूप में सेट करते हैं, और फिर आप नई सुविधा का उपयोग कर उपयोगकर्ता से पहले अनुमति का अनुरोध करते हैं। काम 100% है।

"permissions": ["tabs","http://*/*","https://*/*"], 

उसके बाद आप उपयोग कर सकते हैं:

chrome.permissions.request 

और

chrome.permissions.contains 
+1

नए उपयोगकर्ताओं के लिए उन्हें एक्सटेंशन इंस्टॉल करने के लिए अनुमतियां स्वीकार करनी होंगी और – aloo

+0

@Gabriele पर अनुमतियों का एक और सेट स्वीकार करना होगा, हालांकि, chrome.permissions.request को "उपयोगकर्ता इशारा" के अंदर बुलाया जाना चाहिए, है ना? इसके लिए आपने किस उपयोगकर्ता इशारा का उपयोग किया है? यदि मैं चाहता हूं कि जब भी उपयोगकर्ता एक निश्चित वेबपृष्ठ लोड करता है तो क्या होगा? –

+0

मेरे मामले में मेरे पास एक छोटा सेटिंग पैनल है जो पृष्ठ में सही इंजेक्शन दिया गया है। जब आप इसे टॉगल करते हैं, तो यह अनुमति मांगेगा। मुझे लगता है कि यह उससे थोड़ा अधिक जटिल था और इसे संदेशों का उपयोग करने की आवश्यकता थी। मेरे द्वारा किए गए एक्सटेंशन को एचएन स्पेशल कहा जाता है और आप इसे गिटहब पर पा सकते हैं। इसे googling का प्रयास करें :) –

4

अपने एक्सटेंशन के साथ एक ही मुद्दा सामना करते हुए, मैं

यह है कि आप अपने प्रकट करने के लिए जोड़ है इस पोस्ट के बारे में एक ही प्रश्न की खोज के बारे में आया था। एक ऐसा अद्यतन है जो कुछ मामलों में स्वीकार्य लगता है। के अनुसार: https://support.google.com/chrome_webstore/answer/1054246 और http://developer.chrome.com/extensions/permission_warnings.html

पर उदाहरण लगता है कि आपकी अनुमतियों को अद्यतन करने, वास्तव में आपका विस्तार को निष्क्रिय कर देगा, लेकिन यह अपने परिवर्तन के बारे में संकेत करें और अनुमति देगा एक आसान "को पुन: सक्षम"।

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

मुझे पता है कि यह पोस्ट पुराना है, लेकिन जैसा कि इस प्रश्न के लिए शीर्ष Google परिणाम है अद्यतन भविष्य के संदर्भ के लिए अच्छा हो ...

+2

क्या कोई तरीका है कि, मेरे पुराने उपयोगकर्ताओं को केवल वैकल्पिक अनुमति पॉपअप मिलती है, लेकिन नए उपयोगकर्ता इसे केवल एक बार प्राप्त करते हैं जब वे एक्सटेंशन इंस्टॉल कर रहे हैं और दो बार नहीं - एक बार स्थापना पर, और इन वैकल्पिक सुविधाओं का उपयोग करते समय। – Nakul

+0

@ नकुल आप यह जांचने के लिए 'chrome.permissions.contains' का उपयोग कर सकते हैं कि अनुमति पहले ही दी गई है या फिर से अलग से पूछा जा सकता है। –

4

क्रोम 16 के बाद से आप इंस्टॉल समय पर वैकल्पिक_प्रमिशन सेट कर सकते हैं और रन टाइम पर ऊंची अनुमति मांग सकते हैं। manifest.json में https://developer.chrome.com/extensions/permissions

देखें:

{ 
    "name": "My extension", 
    ... 
    "optional_permissions": [ "tabs", "http://bar.site.com/" ], 
    ... 
    } 
popup.json में

:

document.querySelector('#my-button').addEventListener('click', function(event) { 
    // Permissions must be requested from inside a user gesture, like a button's 
    // click handler. 
    chrome.permissions.request({ 
     permissions: ['tabs'], 
     origins: ['http://bar.site.com/'] 
    }, function(granted) { 
     // The callback argument will be true if the user granted the permissions. 
     if (granted) { 
     doSomething(); 
     } else { 
     doSomethingElse(); 
     } 
    }); 
    });