2012-05-30 24 views
9

में एक्सटेंशन अनइंस्टॉल ईवेंट प्राप्त करें क्या सफारी ब्राउज़र एक्सटेंशन के लिए अपनी अनइंस्टॉलेशन का पता लगाने का कोई तरीका है?सफारी

मैं अपने एक्सटेंशन की अनइंस्टॉलमेंट दर का ट्रैक रखने के लिए Google Analytics को एक ईवेंट भेजना चाहता हूं।

+0

मैं विस्तार की स्थिति को रखने के लिए स्थानीय स्टोरेज का उपयोग कर रहा हूं (= 'अनइंस्टॉलेशन की आवश्यकता है')। समस्या यह है कि जब उपयोगकर्ता ext को अनइंस्टॉल करता है तो यह मान स्पष्ट नहीं होता है। अगर मुझे पता था कि एक्सटेंशन अनइंस्टॉल किया गया था तो मैं साफ़ स्लेट पर लौटने वाले स्थानीय स्टोरेज को साफ़ कर सकता था। –

उत्तर

3

विकास मंचों पर घूमने के बाद, मुझे पता चला कि स्पष्ट रूप से सफारी में ऐसी कोई घटना नहीं है (क्रोम के विपरीत) या यदि कोई है, तो वे अनियंत्रित हैं (और इसलिए इसका उपयोग नहीं किया जाना चाहिए)। मुझे लगता है कि अपने सबसे अच्छे दांव हैं: एक बाहरी सेवा है कि ~/Library/सफारी/एक्सटेंशन हटाए जाने के लिए Extensions.plist फ़ाइल की निगरानी कर सकते सेट करें

क) अनुरोध के माध्यम से Apple's bug-reporting and feature-requesting site

ख सुविधा) (जो सुरक्षा जोखिमों पर विचार करते हुए शायद बहुत मुश्किल है)

सी) दिन में या किसी अन्य अंतराल पर बाहरी सेवा को पिंग करके सक्रिय उपयोगकर्ता आधार का ट्रैक रखें। गतिविधि में बूंदों द्वारा हटाने/निष्क्रियता दर का अनुमान लगाया जा सकता है।

+0

उपरोक्त टिप्पणी से मेरे उपयोग मामले को हल करने के लिए कोई विचार? –

+0

@MaciejJankowski localStorage केवल तभी साफ़ किया जाता है जब सफारी इसे सफारी रीसेट के माध्यम से साफ़ करता है, या जब आप इसे अपने एक्सटेंशन में साफ़ करते हैं। चूंकि अनइंस्टॉलेशन का पता लगाने का कोई तरीका नहीं है, इसलिए इसे अनइंस्टॉलेशन पर साफ़ करने का कोई तरीका नहीं है। यह उपयोगकर्ता के लिए अपने स्थानीय स्टोरेज को साफ़ करने के लिए है, जो अजीब है, लेकिन इस तरह वर्तमान प्रणाली काम करती है। – mleyfman

+1

@MaciejJankowski, आप ऐप्पलकैंक में भी देखना चाहेंगे, क्योंकि कुछ लोकप्रिय एक्सटेंशन (1 पासवर्ड और अन्य) एक्सटेंशन एक्सटेंशन सैंडबॉक्स के बाहर हुक जोड़ने के लिए उनका उपयोग करते हैं। – mleyfman

0

एक्सटेंशन को अनइंस्टॉल करते समय पता लगाने के लिए आप वैश्विक फ़ाइल स्क्रिप्ट में window.onunload ईवेंट पंजीकृत कर सकते हैं। 'अनलोड' के साथ addEventListener() का उपयोग करने के लिए बेहतर है क्योंकि सफारी एक्सटेंशन स्टोरेज को साफ़ करने के लिए ईवेंट का उपयोग कर सकता है। यह भी सुनिश्चित करना सुनिश्चित करें कि एक्सटेंशन एक्सटेंशन या रीलोड के मामले में ईवेंट फ़ायरिंग हो रहा है क्योंकि इन मामलों में वैश्विक पृष्ठ भी उतार दिया गया है।

window.addEventListener("unload", function() { 
    //handle uninstall event 
});