यह कंट्रोल करें कि आपका ऐप्लिकेशन कैसे लॉन्च किया जाए.
लॉन्च हैंडलर एपीआई की मदद से, यह कंट्रोल किया जा सकता है कि आपका ऐप्लिकेशन कैसे लॉन्च किया जाए. उदाहरण के लिए, यह कंट्रोल किया जा सकता है कि वह किसी मौजूदा या नई विंडो का इस्तेमाल करता है या नहीं. साथ ही, यह भी कंट्रोल किया जा सकता है कि चुनी गई विंडो को लॉन्च यूआरएल पर नेविगेट किया जाए या नहीं. फ़ाइल मैनेज करने वाले एपीआई की तरह ही, यह भी लॉन्च किए गए पेज के 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, तुरंत समस्या की जानकारी शेयर करने के लिए बहुत अच्छा है.
एपीआई के लिए सहायता दिखाना
क्या आपको Launch Handler API का इस्तेमाल करना है? सार्वजनिक तौर पर सहायता करने से, Chromium टीम को सुविधाओं को प्राथमिकता देने में मदद मिलती है. साथ ही, इससे ब्राउज़र के अन्य वेंडर को यह पता चलता है कि इन सुविधाओं को उपलब्ध कराना कितना ज़रूरी है.
@ChromiumDev को ट्वीट करें. इसके लिए, हैशटैग #LaunchHandler
का इस्तेमाल करें और हमें बताएं कि इसका इस्तेमाल कहां और कैसे किया जा रहा है.