2016-06-11 3 views
5

मैं एक साधारण वेब एक्सटेंशन एक्सटेंशन में तर्क के साथ एक कमांड (डिस्क पर कहीं और) चलाने के लिए चाहता हूं, और संभवतः इसके stdout प्राप्त करें। क्या WebExtensions में ऐसा करने का कोई तरीका है, क्योंकि पुराने एपीआई को बहिष्कृत किया जा रहा है?फ़ायरफ़ॉक्स Webextensions में कमांड लाइन प्रोग्राम निष्पादित करने के लिए कैसे?

उत्तर

3

इस ब्लॉग पोस्ट का उल्लेख है कि कैसे - https://blog.mozilla.org/addons/2016/06/09/webextensions-for-firefox-49/

अनुभाग runtime.connectNative पढ़ें। वे कहते हैं कि:

runtime.connectNative

यह API आप मेजबान के ऑपरेटिंग सिस्टम के अन्य प्रक्रियाओं के साथ संवाद करने की अनुमति देता है। यह पासवर्ड प्रबंधक और सुरक्षा सॉफ़्टवेयर के लिए आमतौर पर उपयोग किया जाने वाला एपीआई है जिसे बाहरी प्रक्रियाओं के साथ संवाद करने की आवश्यकता होती है।

मूल प्रक्रिया के साथ संवाद करने के लिए, दो-चरणीय प्रक्रिया है। सबसे पहले, आपके इंस्टॉलर को एक लक्षित फ़ाइल स्थान पर एक लक्षित फ़ाइल स्थान पर JSON मेनिफेस्ट फ़ाइल स्थापित करने की आवश्यकता है। वह जेएसओएन मैनिफेस्ट फ़ायरफ़ॉक्स और प्रक्रिया के बीच का लिंक प्रदान करता है। दूसरा, उपयोगकर्ता ऐड-ऑन इंस्टॉल करता है। फिर ऐड-ऑन connectNative, sendNativeMessage और अन्य API कॉल कर सकते हैं:

chrome.runtime.sendNativeMessage('your-application', 
    { text: "Hello" }, 
    function(response) { 
    console.log("Received " + response); 
}); 

फ़ायरफ़ॉक्स प्रक्रिया शुरू कर देंगे, तो यह पहले से ही शुरू नहीं हुआ है, और पाइप प्रक्रिया के माध्यम से आदेश देता है। बगजिला पर runtime.connectNative की प्रगति के साथ पालन करें।

+0

चूंकि ब्लॉग इस एपीआई को "प्रगति पर" सूचीबद्ध करता है, मुझे लगता है कि इसका अभी उपयोग नहीं किया जा सकता है? –

+0

@ माइकलबेडनारेक शायद नाइटली और डेव संस्करण में ही उपयोग किया जा सकता है। यदि आप फ़ायरफ़ॉक्स एडन एसडीके एडन बनाना चाहते हैं, तो आप 'child_process' - https://developer.mozilla.org/en-US/Add-ons/SDK/Low-Level_APIs/system_child_process का उपयोग कर सकते हैं – Noitidart

संबंधित मुद्दे