यह कंट्रोल करें कि आपका ऐप्लिकेशन कैसे लॉन्च किया जाए.
लॉन्च हैंडलर एपीआई की मदद से, यह कंट्रोल किया जा सकता है कि आपका ऐप्लिकेशन कैसे लॉन्च किया जाए. उदाहरण के लिए, यह कंट्रोल किया जा सकता है कि वह किसी मौजूदा या नई विंडो का इस्तेमाल करता है या नहीं. साथ ही, यह भी कंट्रोल किया जा सकता है कि चुनी गई विंडो को लॉन्च यूआरएल पर नेविगेट किया जाए या नहीं. File Handing API की तरह, यह लॉन्च पेज के window.launchQueue
में एक LaunchParams
ऑब्जेक्ट को भी लाइन में जोड़ता है.
मौजूदा स्थिति
चरण | स्थिति |
---|---|
1. जानकारी देने वाला वीडियो बनाएं | पूरा हो गया |
2. स्पेसिफ़िकेशन का शुरुआती ड्राफ़्ट बनाएं | पूरा हुआ |
3. सुझाव/राय इकट्ठा करना और डिज़ाइन में बदलाव करना | पूरा हुआ |
4. ऑरिजिन ट्रायल. | पूरा हुआ |
5. लॉन्च करना | पूरा हुआ |
Launch Handler API का इस्तेमाल करना
ब्राउज़र समर्थन
इंटरफ़ेस
Launch Handler 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
: लॉन्च को मैनेज करने के लिए, वेब ऐप्लिकेशन विंडो में सबसे हाल ही में ब्राउज़ किए गए कॉन्टेक्स्ट को चुना जाता है. लॉन्च यूआरएल पर सेट किए गएtargetURL
के साथ एक नयाLaunchParams
ऑब्जेक्ट, दस्तावेज़ केwindow.launchQueue
में लाइन में लगा दिया जाएगा.auto
: यह यूज़र एजेंट तय करता है कि प्लैटफ़ॉर्म के लिए कौनसा तरीका सबसे सही है. उदाहरण के लिए, मोबाइल डिवाइसों पर सिर्फ़ एक क्लाइंट काम करता है और वेexisting-client
का इस्तेमाल करते हैं. वहीं, डेस्कटॉप डिवाइसों पर कई विंडो काम करती हैं और वे डेटा को मिटाने से बचाने के लिएnavigate-new
का इस्तेमाल करती हैं.
client_mode
प्रॉपर्टी में वैल्यू की सूची (कलेक्शन) भी दी जा सकती है. इसमें, पहली मान्य वैल्यू का इस्तेमाल किया जाएगा. ऐसा इसलिए किया जाता है, ताकि मौजूदा तरीकों से पुराने सिस्टम के साथ काम करने की सुविधा में रुकावट डाले बिना, स्पेसिफ़िकेशन में नई वैल्यू जोड़ी जा सकें.
उदाहरण के लिए, अगर कोई काल्पनिक वैल्यू "focus-matching-url"
जोड़ी गई थी, तो साइटें
"client_mode": ["focus-matching-url", "navigate-existing"]
को तय करेगी, ताकि उन पुराने ब्राउज़र के काम करने का तरीका कंट्रोल किया जा सके जो "focus-matching-url"
के साथ काम नहीं करते.
window.launchQueue का इस्तेमाल करना
नीचे दिए गए कोड में, फ़ंक्शन extractSongID()
, लॉन्च के समय पास किए गए यूआरएल से songID
निकालता है. इसका इस्तेमाल, म्यूज़िक प्लेयर के PWA में गाना चलाने के लिए किया जाता है.
if ('launchQueue' in window) {
launchQueue.setConsumer((launchParams) => {
if (launchParams.targetURL) {
const songID = extractSongId(launchParams.targetURL);
if (songID) {
playSong(songID);
}
}
});
}
डेमो
PWA लॉन्च हैंडलर के डेमो में, लॉन्च हैंडलर एपीआई का डेमो देखा जा सकता है. ऐप्लिकेशन के सोर्स कोड की जांच करना न भूलें. इससे आपको यह जानने में मदद मिलेगी कि ऐप्लिकेशन, Launch Handler API का इस्तेमाल कैसे करता है.
- 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%2Ffile_example_MP3_700KB.mp3?v=1638795977190
).- अपने चैट ऐप्लिकेशन में दिए गए लिंक पर क्लिक करें. इसके बाद, देखें कि Musicr 2.0 कैसे खुलता है और ट्रैक कैसे चलाता है.
- अपने चैट ऐप्लिकेशन में लिंक पर फिर से क्लिक करें और देखें कि आपको Musicr 2.0 का दूसरा इंस्टेंस नहीं मिलेगा.
सुझाव/राय दें या शिकायत करें
Chromium टीम को Launch Handler API के साथ आपके अनुभवों के बारे में जानना है.
हमें एपीआई के डिज़ाइन के बारे में बताएं
क्या एपीआई में ऐसा कुछ है जो आपकी उम्मीद के मुताबिक काम नहीं करता? या क्या कुछ ऐसे तरीके या प्रॉपर्टी हैं जिन पर आपको अपने आइडिया को लागू करने की ज़रूरत है? क्या आपका सुरक्षा मॉडल के बारे में कोई सवाल या टिप्पणी है? उससे जुड़े GitHub repo पर, खास समस्या की शिकायत करें या किसी मौजूदा समस्या में अपने सुझाव जोड़ें.
लागू करने से जुड़ी समस्या की शिकायत करना
क्या आपको Chromium को लागू करने में कोई गड़बड़ी मिली? या क्या इसे लागू करने का तरीका, खास जानकारी से अलग है?
new.crbug.com पर जाकर, गड़बड़ी की शिकायत करें. इसमें ज़्यादा से ज़्यादा जानकारी शामिल करें. साथ ही, गड़बड़ी को दोहराने के निर्देश दें. इसके बाद, Components बॉक्स में Blink>AppManifest
डालें.
तुरंत जवाब देने के लिए, Glitch काम करता है.
यह एपीआई काम करता है
क्या आपको लॉन्च हैंडलर एपीआई इस्तेमाल करना है? आपकी सार्वजनिक सहायता से Chromium टीम को सुविधाओं को प्राथमिकता देने में मदद मिलती है. साथ ही, यह दूसरे ब्राउज़र वेंडर को यह भी दिखाता है कि उनकी मदद करना कितना ज़रूरी है.
हैशटैग #LaunchHandler
का इस्तेमाल करके @ChromiumDev को ट्वीट भेजें और हमें बताएं कि उनका इस्तेमाल कहां और कैसे किया जा रहा है.