externally_connectable
मेनिफ़ेस्ट प्रॉपर्टी से पता चलता है कि कौनसे एक्सटेंशन, ऐप्लिकेशन, और वेब पेज
runtime.connect
और runtime.sendMessage
के ज़रिए अपने ऐप्लिकेशन से कनेक्ट करें.
मैसेज पास होने की जानकारी देने वाले ट्यूटोरियल के लिए, क्रॉस-एक्सटेंशन और ऐप्लिकेशन मैसेज सेवा और मैसेज भेजना देखें मिलते हैं.
External_connectable के बिना कनेक्ट किया जा रहा है
अगर आपके ऐप्लिकेशन के मेनिफ़ेस्ट में externally_connectable
का एलान नहीं किया गया है, तो सभी एक्सटेंशन और ऐप्लिकेशन ये काम कर सकते हैं
कनेक्ट कर सकते हैं, लेकिन कोई भी वेबपेज कनेक्ट नहीं हो सकता. इस वजह से, मेनिफ़ेस्ट अपडेट करते समय
externally_connectable
, अगर "ids": ["*"]
नहीं बताया गया है, तो अन्य एक्सटेंशन और ऐप्लिकेशन
आपके ऐप्लिकेशन से कनेक्ट नहीं हो पाता. ऐसा अनजाने में भी हो सकता है, इसलिए इसे ध्यान में रखें.
Manifest.json का सैंपल
{
"name": "My externally connectable app",
"externally_connectable": {
// Extension and app IDs. If this field is not specified, no
// extensions or apps can connect.
"ids": [
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
...
// Alternatively, to match all extensions and apps, specify only
// "*".
"*"
],
// Match patterns for web pages. Does not affect content scripts.
// If this field is not specified, no webpages can connect.
"matches": [
"https://*.google.com/*",
"*://*.chromium.org/*",
...
],
// Indicates that the extension would like to make use of the TLS
// channel ID of the web page connecting to it. The web page must
// also opt to send the TLS channel ID to the extension via setting
// includeTlsChannelId to true in runtime.connect's connectInfo
// or runtime.sendMessage's options.
"accepts_tls_channel_id": false
},
...
}
रेफ़रंस
External_connectable मेनिफ़ेस्ट कुंजी में ये प्रॉपर्टी हो सकती हैं:
ids
(स्ट्रिंग की कैटगरी) - ज़रूरी नहींउन एक्सटेंशन या ऐप्लिकेशन के आईडी जिन्हें कनेक्ट किया जा सकता है. अगर इसे खाली छोड़ दिया जाता है या बताया नहीं जाता, तो नहीं एक्सटेंशन या ऐप्लिकेशन कनेक्ट हो सकते हैं.
वाइल्डकार्ड
"*"
से सभी एक्सटेंशन और ऐप्लिकेशन कनेक्ट हो जाएंगे.matches
(स्ट्रिंग की कैटगरी) - ज़रूरी नहींउन वेब पेजों के यूआरएल पैटर्न जिन्हें कनेक्ट किया जा सकता है. इससे कॉन्टेंट पर कोई असर नहीं पड़ेगा स्क्रिप्ट. अगर इसे खाली छोड़ दिया जाता है या बताया नहीं जाता है, तो कोई भी वेब पेज कनेक्ट नहीं किया जा सकता.
पैटर्न में वाइल्डकार्ड डोमेन या (असरदार) टॉप लेवल डोमेन के सबडोमेन शामिल नहीं हो सकते;
*://google.com/*
औरhttps://*.chromium.org/*
मान्य हैं, जबकि<all_urls>
,https://*/*
,*://*.com/*
और यहां तक किhttps://*.appspot.com/*
भी नहीं.accepts_tls_channel_id
(बूलियन) - ज़रूरी नहींअगर
true
, तोruntime.connect
याruntime.sendMessage
से भेजे गए मैसेज सेट होंगेruntime.MessageSender.tlsChannelId
अगर उन तरीकों से ऐसा करने के लिए अनुरोध किया जाता है. अगरfalse
,runtime.MessageSender.tlsChannelId
को किसी भी स्थिति में सेट नहीं किया जाएगा.