हैंडलर API लॉन्च करें

यह कंट्रोल करें कि आपका ऐप्लिकेशन कैसे लॉन्च किया जाए.

थॉमस स्टाइनर
थॉमस स्टाइनर

Launch हैंडलर API की मदद से, यह कंट्रोल किया जा सकता है कि आपका ऐप्लिकेशन कैसे लॉन्च होगा. उदाहरण के लिए, क्या यह किसी मौजूदा या नई विंडो का इस्तेमाल करेगा और चुनी गई विंडो को लॉन्च यूआरएल पर जाना जाएगा या नहीं. File Handing API की तरह, यह भी लॉन्च किए गए पेज के window.launchQueue में एक LaunchParams ऑब्जेक्ट को शामिल करता है.

मौजूदा स्थिति

चरण स्थिति
1. जानकारी बनाएं पूरा हुआ
2. स्पेसिफ़िकेशन का शुरुआती ड्राफ़्ट बनाएं पूरा हुआ
3. सुझाव पाएं और डिज़ाइन को बेहतर बनाएं पूरा जवाब
4. ऑरिजिन ट्रायल. पूरा जवाब
5. लॉन्च करें पूरा हुआ

लॉन्च हैंडलर एपीआई का इस्तेमाल करना

ब्राउज़र समर्थन

लॉन्च हैंडलर सिर्फ़ ChromeOS पर उपलब्ध है.

ब्राउज़र सहायता

  • 110
  • 110
  • x
  • x

सोर्स

इंटरफ़ेस

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: वेब ऐप्लिकेशन विंडो में ब्राउज़िंग कॉन्टेक्स्ट के साथ हाल ही में इंटरैक्ट किए गए इवेंट को, लॉन्च को मैनेज करने के लिए चुना गया है. लॉन्च यूआरएल पर सेट किए गए 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 के लॉन्च हैंडलर का डेमो लेख में, लॉन्च हैंडलर एपीआई का डेमो देखा जा सकता है. ऐप्लिकेशन लॉन्च हैंडलर एपीआई का इस्तेमाल कैसे करता है, यह जानने के लिए ऐप्लिकेशन का सोर्स कोड देखें.

  1. ChromeOS डिवाइस पर Musicr 2.0 ऐप्लिकेशन इंस्टॉल करें.
  2. 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).
  3. अपने चैट ऐप्लिकेशन में मौजूद लिंक पर क्लिक करें और देखें कि Musicr 2.0 ट्रैक को कैसे खोलता है और उसे कैसे चलाता है.
  4. अपने चैट ऐप्लिकेशन में मौजूद लिंक पर फिर से क्लिक करें और ध्यान दें कि आपको Musicr 2.0 का दूसरा इंस्टेंस नहीं मिलेगा.

सुझाव/राय दें या शिकायत करें

Chromium टीम, Launch हैंडलर API के इस्तेमाल से जुड़े आपके अनुभवों के बारे में जानना चाहती है.

हमें एपीआई डिज़ाइन के बारे में बताएं

क्या इस एपीआई में कोई ऐसी चीज़ है जो आपकी उम्मीद के मुताबिक काम नहीं करती? या फिर, क्या अपना आइडिया लागू करने के लिए तरीके या प्रॉपर्टी मौजूद नहीं हैं? सुरक्षा मॉडल पर कोई सवाल या टिप्पणी करना है? इससे जुड़े GitHub रिपो के बारे में कोई खास समस्या दर्ज करें या किसी मौजूदा समस्या के बारे में अपनी राय दें.

लागू करने से जुड़ी समस्या की शिकायत करें

क्या आपको Chromium को लागू करने के दौरान कोई गड़बड़ी मिली? या फिर लागू करने का तरीका खास जानकारी से अलग है? new.crbug.com पर जाकर गड़बड़ी की शिकायत करें. कृपया ज़्यादा से ज़्यादा जानकारी, फिर से बनाने के आसान निर्देश, और कॉम्पोनेंट बॉक्स में Blink>AppManifest डालें. Glitch दोबारा शेयर करने का बेहतरीन तरीका है.

एपीआई की सुविधा का इस्तेमाल करें

क्या आपको Launch हैंडलर API का इस्तेमाल करना है? आपकी सार्वजनिक सहायता से Chromium टीम को सुविधाओं को प्राथमिकता देने में मदद मिलती है और यह अन्य ब्राउज़र वेंडर को दिखाता है कि उनकी मदद करना कितना ज़रूरी है.

हैशटैग #LaunchHandler का इस्तेमाल करके @ChromiumDev को एक ट्वीट भेजें. साथ ही, हमें बताएं कि इसका इस्तेमाल कहां और कैसे किया जा रहा है.

मददगार लिंक