यह कंट्रोल करें कि आपका ऐप्लिकेशन कैसे लॉन्च होगा.
Launch हैंडलर API की मदद से आपको यह कंट्रोल करने की सुविधा मिलती है कि आपका ऐप्लिकेशन कैसे लॉन्च हो. उदाहरण के लिए, ऐप्लिकेशन किसी मौजूदा विंडो या नई विंडो का इस्तेमाल करता है या नहीं. इसके अलावा, यह भी तय किया जा सकता है कि चुनी गई विंडो, लॉन्च यूआरएल पर नेविगेट करेगी या नहीं. File Handing API की तरह, यह लॉन्च पेज के window.launchQueue
में एक LaunchParams
ऑब्जेक्ट को भी क्यू में दिखाता है.
मौजूदा स्थिति
चरण | स्थिति |
---|---|
1. जानकारी देने वाला वीडियो बनाएं | पूरा हुआ |
2. स्पेसिफ़िकेशन का शुरुआती ड्राफ़्ट बनाएं | पूरा हुआ |
3. लोगों के सुझाव, राय या शिकायतें इकट्ठा करें और डिज़ाइन पर दोहराएं | पूरा जवाब |
4. ऑरिजिन ट्रायल. | पूरा जवाब |
5. लॉन्च करें | पूरा हुआ |
लॉन्च हैंडलर API का इस्तेमाल करना
ब्राउज़र समर्थन
लॉन्च हैंडलर की सुविधा सिर्फ़ ChromeOS पर उपलब्ध है.
इंटरफ़ेस
Launch हैंडलर API की मदद से दो नए इंटरफ़ेस बनाए गए हैं.
LaunchParams
: एक ऑब्जेक्ट, जिसमें targetURL
शामिल होता है. इस ऑब्जेक्ट को उपभोक्ता मैनेज करता है.
LaunchQueue
: सूचियां तब तक लॉन्च होती हैं, जब तक उन्हें तय किया गया उपभोक्ता मैनेज नहीं करता.
launch_handler
मेनिफ़ेस्ट सदस्य
अपने ऐप्लिकेशन के लॉन्च के तरीके की जानकारी देने के लिए, अपने मेनिफ़ेस्ट में launch_handler
मेनिफ़ेस्ट सदस्य जोड़ें. इसमें client_mode
नाम का एक सब-फ़ील्ड है. इससे आपको यह कंट्रोल करने की सुविधा मिलती है कि नया या मौजूदा क्लाइंट लॉन्च किया जाए या नहीं. साथ ही, यह भी कंट्रोल किया जा सकता है कि इस क्लाइंट को नेविगेट करना है या नहीं. यहां दिए गए उदाहरण में, ऐसी फ़ाइल दिखाई गई है जिसकी वैल्यू, सभी लॉन्च को हमेशा नए क्लाइंट पर रूट करेगी.
{
"launch_handler": {
"client_mode": "navigate-new"
}
}
अगर इसके लिए कोई वैल्यू सेट नहीं की गई है, तो launch_handler
की डिफ़ॉल्ट वैल्यू {"client_mode": "auto"}
होती है. सब-फ़ील्ड के लिए, ये वैल्यू
इस्तेमाल की जा सकती हैं:
client_mode
:navigate-new
: लॉन्च के टारगेट यूआरएल को लोड करने के लिए, वेब ऐप्लिकेशन की विंडो में एक नया ब्राउज़िंग संदर्भ बनाया जाता है.navigate-existing
: किसी वेब ऐप्लिकेशन विंडो में, सबसे हाल ही में ब्राउज़िंग कॉन्टेक्स्ट से इंटरैक्ट करने पर, लॉन्च के टारगेट यूआरएल पर ले जाया जाता है.focus-existing
: किसी वेब ऐप्लिकेशन की विंडो में, सबसे हाल ही में ब्राउज़ करने के कॉन्टेक्स्ट के साथ इंटरैक्ट किया गया व्यक्ति होता है. इसका इस्तेमाल, लॉन्च को मैनेज करने के लिए किया जाता है. एक नयाLaunchParams
ऑब्जेक्ट, दस्तावेज़ केwindow.launchQueue
में लाइन में जुड़ जाएगा, जिसकेtargetURL
लॉन्च यूआरएल पर सेट है.auto
: उपयोगकर्ता एजेंट, यह तय कर सकता है कि प्लैटफ़ॉर्म के लिए कौनसा तरीका सबसे सही रहेगा. उदाहरण के लिए, मोबाइल डिवाइस सिर्फ़ एक क्लाइंट के साथ काम करते हैं औरexisting-client
का इस्तेमाल करेंगे. वहीं, डेस्कटॉप डिवाइस कई विंडो पर काम करते हैं और डेटा नुकसान से बचने के लिएnavigate-new
का इस्तेमाल करेंगे.
client_mode
प्रॉपर्टी में वैल्यू की लिस्ट (कलेक्शन) भी होती है, जिसमें पहली मान्य वैल्यू का इस्तेमाल किया जाएगा. ऐसा इसलिए किया जाता है, ताकि मौजूदा तरीकों से पुराने सिस्टम के साथ काम करने की सुविधा को हटाए बिना, स्पेसिफ़िकेशन में नई वैल्यू जोड़ी जा सकें.
उदाहरण के लिए, अगर कोई काल्पनिक वैल्यू "focus-matching-url"
जोड़ी गई थी, तो साइटें
"client_mode": ["focus-matching-url", "navigate-existing"]
को तय करेगी, ताकि उन पुराने ब्राउज़र के काम करने का तरीका कंट्रोल किया जा सके जो "focus-matching-url"
के साथ काम नहीं करते.
window.launchVLOOKUP का इस्तेमाल किया जा रहा है
यहां दिए गए कोड में, extractSongID()
फ़ंक्शन, लॉन्च के समय पास किए गए यूआरएल से songID
निकालता है. इसका इस्तेमाल, म्यूज़िक प्लेयर के PWA में गाना चलाने के लिए किया जाता है.
if ('launchQueue' in window) {
launchQueue.setConsumer((launchParams) => {
if (launchParams.targetURL) {
const songID = extractSongId(launchParams.targetURL);
if (songID) {
playSong(songID);
}
}
});
}
डेमो
PWA लॉन्च हैंडलर के डेमो में, लॉन्च हैंडलर एपीआई का डेमो देखा जा सकता है. ऐप्लिकेशन के सोर्स कोड को देखना न भूलें, ताकि आपको पता चल सके कि यह Launch हैंडलर API का इस्तेमाल कैसे करता है.
- ChromeOS डिवाइस पर Musicr 2.0 ऐप्लिकेशन इंस्टॉल करें.
https://launch-handler.glitch.me?track=https://example.com/music.mp3
फ़ॉर्म वाले चैट ऐप्लिकेशन में खुद को एक लिंक भेजें. (ऑडियो फ़ाइल पर ले जाने वाले किसी भी यूआरएल के लिए,https://example.com/music.mp3
को पसंद के मुताबिक बनाया जा सकता है, जैसे किhttps://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e/file_example_MP3_700KB.mp3?v=1638795977190
).- अपने चैट ऐप्लिकेशन में दिए गए लिंक पर क्लिक करें और देखें कि Musicr 2.0 कैसे खुलता है और ट्रैक को कैसे चलाता है.
- अपने चैट ऐप्लिकेशन में दिए गए लिंक पर फिर से क्लिक करें और देखें कि आपको Musicr 2.0 का दूसरा इंस्टेंस नहीं मिलेगा.
सुझाव/राय दें या शिकायत करें
Chromium की टीम, Launch हैंडलर API के इस्तेमाल से जुड़े आपके अनुभव जानना चाहती है.
हमें एपीआई के डिज़ाइन के बारे में बताएं
क्या एपीआई में ऐसा कुछ है जो आपकी उम्मीद के मुताबिक काम नहीं करता? या क्या कुछ ऐसे तरीके या प्रॉपर्टी हैं जिन पर आपको अपने आइडिया को लागू करने की ज़रूरत है? सुरक्षा मॉडल से जुड़ा आपका कोई सवाल या टिप्पणी है? इससे जुड़े GitHub रेपो पर, कोई खास समस्या दर्ज करें या किसी मौजूदा समस्या के बारे में अपनी राय दें.
लागू करने से जुड़ी समस्या की शिकायत करना
क्या आपको Chromium को लागू करने में कोई गड़बड़ी मिली? या क्या लागू करने का तरीका, स्पेसिफ़िकेशन से अलग है?
new.crbug.com पर बग की शिकायत करें. ज़्यादा से ज़्यादा जानकारी शामिल करना न भूलें,
फिर से बनाने के आसान निर्देश दें और कॉम्पोनेंट बॉक्स में Blink>AppManifest
डालें.
Glitch, जल्दी और आसान रेप्रस शेयर करने के लिए शानदार काम करता है.
यह एपीआई काम करता है
क्या आपको लॉन्च हैंडलर एपीआई इस्तेमाल करना है? आपकी सार्वजनिक सहायता से Chromium टीम को सुविधाओं को प्राथमिकता देने में मदद मिलती है. साथ ही, यह दूसरे ब्राउज़र वेंडर को यह भी दिखाता है कि उनकी मदद करना कितना ज़रूरी है.
हैशटैग #LaunchHandler
का इस्तेमाल करके @ChromiumDev को ट्वीट भेजें और हमें बताएं कि उनका इस्तेमाल कहां और कैसे किया जा रहा है.