वेब मैनिफ़ेस्ट चेकर

पेज URL दें तो चेकर Mutqan सर्वर से उसका link rel="manifest" फ़ॉलो करता है, या सीधे manifest URL दें, या JSON पेस्ट करके उसे अपने ब्राउज़र में जाँचें। यह मेंबर को W3C Web Application Manifest के हिसाब से, start_url, scope और shortcuts के same-origin नियमों, display मोड, और Chromium के माँगे 192 व 512 पिक्सेल आइकॉन के लिए जाँचता है, और हर आइकॉन फ़ाइल माँगकर पुष्टि कर सकता है कि वह मौजूद है।

गोपनीयता: Mutqan सर्वर इस पेज पर बताई गई छोटी, तय टेस्ट रिक्वेस्ट आपके बताए होस्ट को भेजता है, और कुछ भी स्टोर नहीं होता। इसे सिर्फ़ उन्हीं सिस्टम पर इस्तेमाल करें जिन्हें टेस्ट करने की आपको अनुमति है।
टूल लोड हो रहा है…

वेब ऐप मैनिफ़ेस्ट क्या है?

वेब ऐप मैनिफ़ेस्ट एक JSON फ़ाइल है जिसे पेज link rel="manifest" से जोड़ता है, और जो ब्राउज़र को बताती है कि साइट को ऐप की तरह कैसे इंस्टॉल करना है: उसका name और short_name, खुलने वाला start_url, नियंत्रित होने वाला scope, display मोड और हर जगह के लिए आइकॉन। start_url और scope manifest के अपने URL के सापेक्ष resolve होते हैं और उसी origin पर रहने चाहिए, और Chrome इंस्टॉल का विकल्प तभी देता है जब manifest में नाम, start_url, इंस्टॉल होने लायक़ display मोड और 192 व 512 पिक्सेल के आइकॉन हों, और पेज HTTPS पर हो।

वेब मैनिफ़ेस्ट चेकर कैसे इस्तेमाल करें

  1. पेज URL डालें (चेकर उसका manifest लिंक फ़ॉलो करता है) या ख़ुद manifest URL — या manifest JSON दूसरे फ़ील्ड में पेस्ट करें।
  2. फ़ेच किए गए manifest के आइकॉन सच में मौजूद हैं या नहीं, यह जाँचने के लिए "आइकॉन फ़ाइलें माँगें" चालू रखें।
  3. "मैनिफ़ेस्ट जाँचें" दबाएँ और पहले इंस्टॉल मानदंड टेबल पढ़ें: हर "फ़ेल" एक वजह है जिससे Chrome ऐप इंस्टॉल करने का विकल्प नहीं देगा।
  4. एरर ठीक करें, चेतावनियों (description, id, maskable आइकॉन, screenshots) पर विचार करें और दोबारा जाँचें।

वेब मैनिफ़ेस्ट चेकर की खूबियाँ

  • पेज URL से उसका link rel="manifest" पढ़कर manifest ढूँढता है, या सीधे manifest URL पढ़ता है — Mutqan सर्वर के ज़रिए
  • पेस्ट किए गए manifest JSON को पूरी तरह आपके ब्राउज़र में जाँचता है, start_url, scope और आइकॉन पाथ resolve करने के लिए वैकल्पिक URL के साथ
  • W3C Web Application Manifest और मौजूदा ब्राउज़र जो भी मेंबर इस्तेमाल करते हैं, सब जाँचता है: name और short_name, id, start_url और scope (same-origin, scope के अंदर start_url), display और display_override, orientation, dir, lang, रंग, आइकॉन, shortcuts, screenshots और पुराने मेंबर
  • Chrome के दर्ज इंस्टॉल मानदंड एक-एक करके परखता है — HTTPS, नाम, same-origin start_url, इंस्टॉल होने लायक़ display मोड, purpose any वाले 192 और 512 पिक्सेल आइकॉन, prefer_related_applications का true न होना — और बताता है कि कौन-सा जाँचा नहीं जा सका
  • आइकॉन उनके साइज़, टाइप और purpose के साथ दिखाता है, और हर आइकॉन फ़ाइल (आठ तक, सिर्फ़ HEAD) माँगकर पक्का कर सकता है कि वह मौजूद है और इमेज के रूप में भेजी जाती है
  • चेतावनी देता है जब manifest JSON मीडिया टाइप के साथ नहीं भेजा जाता (manifest के लिए रजिस्टर्ड टाइप application/manifest+json है), और जब manifest URL HTML पेज लौटाता है

इनपुट और आउटपुट

इनपुट

  • पेज या manifest URL — manifest जोड़ने वाला कोई सार्वजनिक पेज, या manifest का अपना URL; पेस्ट किए JSON के साथ यह सिर्फ़ सापेक्ष मेंबर resolve करता है।
  • या manifest JSON पेस्ट करें — ब्राउज़र में जाँचा जाता है, कुछ नहीं भेजा जाता।
  • आइकॉन फ़ाइलें माँगें — डिफ़ॉल्ट रूप से चालू; फ़ेच किए गए manifest के आठ तक आइकॉन URL HEAD से जाँचता है।

आउटपुट

  • सारांश — Chrome के इंस्टॉल मानदंड पूरे हुए, नहीं हुए या पूरे जाँचे नहीं जा सके, और एरर, चेतावनियों, आइकॉन व मेंबर की गिनती।
  • इंस्टॉल मानदंड (Chrome) — हर मानदंड पास, फ़ेल या "जाँचा नहीं गया" के साथ।
  • एरर और चेतावनियाँ — जाँच में मिली हर समस्या, साफ़ वाक्यों में।
  • मैनिफ़ेस्ट — असरदार name, short_name, id, start_url, scope, display और रंग, manifest URL, उसे जोड़ने वाला पेज और उसका Content-Type।
  • आइकॉन — हर आइकॉन का resolve हुआ URL, साइज़, टाइप, purpose, HTTP स्टेटस और भेजा गया टाइप; CSV में डाउनलोड हो सकता है।

वेब मैनिफ़ेस्ट चेकर का उदाहरण

पेज से जुड़ा manifest, जिसमें इंस्टॉल की तीन रुकावटें हैं

इनपुट:

पेज या manifest URL: https://www.example.com/ · आइकॉन फ़ाइलें माँगें: चालू

आउटपुट:

Install criteria Not met · Errors 5 · Warnings 7 · Icons 1 · Members 5
Served over HTTPS Pass · start_url on the manifest's origin Fail · Installable display mode Fail · Icon of 512×512 or larger with purpose any Fail
The start_url resolves to https://other.example.org, another origin than the manifest (https://www.example.com); start_url must be on the same origin.
The display "browser" is not installable; use "standalone", "minimal-ui" or "fullscreen".
The theme_color "blue-ish" is not a CSS color.
The icon https://www.example.com/i/192.png could not be loaded: HTTP 404.
The manifest is served as text/plain, not as JSON; the specification asks for application/manifest+json (any JSON media type is accepted).

वेब मैनिफ़ेस्ट चेकर के नतीजे कैसे पढ़ें

एरर manifest या इंस्टॉल को तोड़ते हैं: ग़लत JSON, name या start_url का न होना, दूसरे origin पर start_url, "browser" वाला display, या purpose any वाले 192 और 512 पिक्सेल आइकॉन का न होना। ब्राउज़र अमान्य मेंबर अनदेखा करते हैं, इसलिए एरर का मतलब यह भी है कि उस सेटिंग का कोई असर नहीं।

चेतावनियाँ सुधार हैं: बेहतर इंस्टॉल डायलॉग के लिए description और screenshots, साफ़ id ताकि start_url बाद में बदला जा सके, Android के लिए maskable आइकॉन, 12 अक्षर या कम का short_name।

"जाँचा नहीं गया" का मतलब है कि जानकारी उपलब्ध नहीं थी — असली manifest URL के बिना पेस्ट किए JSON के लिए HTTPS और same-origin नियम नहीं परखे जा सकते — इसलिए "पूरा नहीं जाँचा गया" पास नहीं है।

मानदंड पूरे होने पर Chrome इंस्टॉल का विकल्प दे सकता है; पर यह तुरंत दिखने की गारंटी नहीं, क्योंकि ब्राउज़र यूज़र इंगेजमेंट का भी इंतज़ार करता है और कुछ ब्राउज़र के अपने मानदंड होते हैं।

वेब मैनिफ़ेस्ट चेकर कब इस्तेमाल करें

  • पता करें कि आपके progressive web app के लिए ब्राउज़र का इंस्टॉल बटन कभी क्यों नहीं दिखता।
  • रिलीज़ से पहले manifest की समीक्षा करें: same-origin start_url और scope, आइकॉन के साइज़ और purpose, रंग और display मोड।
  • साइट ले जाने या CDN बदलने के बाद पक्का करें कि manifest और उसके आइकॉन अब भी परोसे जा रहे हैं, और किस Content-Type के साथ।
  • जिस manifest को आप अभी एडिट कर रहे हैं उसे पेस्ट करके जाँचें, डिप्लॉय किए बिना।

समस्या निवारण

  • "The manifest URL returned an HTML page, not JSON": लिंक ऐसे पाथ की ओर है जो एरर पेज या साइट का होम पेज लौटाता है। link rel="manifest" का href और फ़ाइल डिप्लॉय हुई है या नहीं, जाँचें।
  • "The page links no web app manifest": सर्वर के भेजे HTML में लिंक नहीं है — शायद उसे बाद में JavaScript जोड़ता है, जिसे चेकर नहीं चलाता। सीधे manifest URL डालें।
  • CDN होस्ट पर जाने के बाद start_url same-origin जाँच में फ़ेल होता है: start_url और scope को manifest के अपने origin पर होना चाहिए, इसलिए manifest ऐप के origin से परोसें या सापेक्ष URL इस्तेमाल करें।
  • आइकॉन मौजूद होने पर भी 404 लौटाते हैं: आइकॉन की src वैल्यू पेज के नहीं, manifest के URL के सापेक्ष resolve होती है; /static/ में रखा manifest जिसकी src "icons/a.png" है, /static/icons/a.png की ओर इशारा करता है।
  • "आइकॉन फ़ाइलें माँगी नहीं जा सकीं" वाली चेतावनी रिक्वेस्ट-सीमा के संदेश के साथ: हर आइकॉन URL साइन इन किए बिना एक मिनट की 10 फ़ाइल-जाँचों (साइन इन करने पर 30) में से एक लेता है, और पेज व उसका manifest दूसरे टूल के साथ साझा 10 पेज फ़ेच में से दो लेते हैं। एक मिनट रुकें, या सिर्फ़ manifest जाँचने के लिए "आइकॉन फ़ाइलें माँगें" से टिक हटा दें।

वेब मैनिफ़ेस्ट चेकर के बारे में अक्सर पूछे जाने वाले सवाल

Chrome में वेब ऐप इंस्टॉल होने लायक़ कब बनता है?

Chrome के दर्ज मानदंड हैं: HTTPS पर परोसा जाना, name या short_name वाला manifest, 192 और 512 पिक्सेल के आइकॉन, start_url, fullscreen, standalone, minimal-ui या window-controls-overlay में से कोई display, और prefer_related_applications का न होना या false होना। इंस्टॉल का संकेत दिखाने से पहले ब्राउज़र कुछ यूज़र इंगेजमेंट का भी इंतज़ार करता है; उसके बिना भी यूज़र मेन्यू से इंस्टॉल कर सकते हैं।

start_url और scope का manifest वाले origin पर होना क्यों ज़रूरी है?

manifest एक ऐप का वर्णन करता है, और ऐप एक ही origin से बँधा होता है। दूसरे origin वाला start_url अनदेखा होकर उस पेज से बदल जाता है जिसने manifest जोड़ा था; और जो scope start_url को शामिल नहीं करता, वह डिफ़ॉल्ट scope पर लौट जाता है। चेकर दोनों नियम manifest के अपने URL के सापेक्ष जाँचता है।

maskable आइकॉन क्या होता है?

purpose "maskable" वाला आइकॉन अपनी ज़रूरी सामग्री बीच के एक सुरक्षित हिस्से में रखता है, ताकि Android उसे लोगो काटे बिना गोल, squircle या किसी दूसरे adaptive आकार में काट सके। इसके बिना Android सामान्य आइकॉन को सफ़ेद टाइल पर रख देता है। purpose "any" वाला आइकॉन भी रखें: सिर्फ़ maskable आइकॉन इंस्टॉल के लिए नहीं गिने जाते।

क्या मैं ऐसा manifest जाँच सकता हूँ जो अभी ऑनलाइन नहीं है?

हाँ। JSON दूसरे फ़ील्ड में पेस्ट करें: वह आपके ब्राउज़र में जाँचा जाता है और कुछ नहीं भेजा जाता। अगर manifest सापेक्ष URL इस्तेमाल करता है तो पेज या manifest URL भी डालें, ताकि start_url, scope और आइकॉन resolve हों और same-origin नियम जाँचे जा सकें।

क्या एक मिनट में manifest जाँचने की कोई सीमा है?

हाँ। पेज URL से शुरू होने वाली जाँच दो पेज फ़ेच करती है (पहले पेज, फिर उसका manifest; फ़ॉलो किए गए हर रीडायरेक्ट के लिए एक और), जो साइन इन किए बिना एक मिनट के 10 पेज फ़ेच (साइन इन करने पर 30) में से जाते हैं और दूसरे टूल के साथ साझा हैं; फिर आठ तक आइकॉन फ़ाइलें एक अलग कोटे से माँगी जाती हैं, जो एक मिनट में 10 है (साइन इन करने पर 30)। पेस्ट किया गया manifest दोनों में से कुछ नहीं लेता: वह आपके ब्राउज़र में जाँचा जाता है।

तकनीकी नोट्स

W3C Web Application Manifest मेंबर और उनकी प्रोसेसिंग परिभाषित करता है: start_url और scope manifest URL के सापेक्ष resolve होते हैं और उसी origin पर होने चाहिए, start_url को scope के अंदर होना चाहिए, display डिफ़ॉल्ट रूप से "browser" होता है, और हर आइकॉन src, sizes, type और purpose (any, maskable, monochrome) से बताया जाता है। स्पेसिफ़िकेशन application/manifest+json मीडिया टाइप रजिस्टर करता है।

URL मोड में पेज POST /api/v1/internet/http/fetch से माँगा जाता है (पहले DNS over HTTPS, निजी पते ठुकराए जाते हैं, पाँच रीडायरेक्ट तक); JSON या manifest Content-Type, या "{" से शुरू होने वाली बॉडी को ख़ुद manifest माना जाता है, वरना HTML का पहला link rel="manifest" पेज URL के सापेक्ष resolve करके उसी तरह फ़ेच किया जाता है। आइकॉन फ़ाइलें HEAD के साथ POST /api/v1/internet/http/assets को जाती हैं।

इंस्टॉल टेबल Chrome के प्रकाशित मानदंडों (web.dev, "What does it take to be installable?") पर चलती है। Chrome जो इंगेजमेंट शर्तें भी लगाता है — पेज पर एक क्लिक और उस पर कुछ समय — वे असली विज़िटर पर निर्भर हैं और इस जाँच का हिस्सा नहीं हैं।

सीमाएँ और कार्यप्रणाली

सिर्फ़ manifest जाँचा जाता है; service worker, ऑफ़लाइन व्यवहार और इंगेजमेंट शर्तें नहीं परखी जातीं, और दूसरे ब्राउज़र थोड़े अलग इंस्टॉल मानदंड इस्तेमाल कर सकते हैं।

पेज और manifest Cloudflare नेटवर्क पर चलने वाले Mutqan सर्वर से एक बार, JavaScript चलाए बिना फ़ेच होते हैं, और हर एक के ज़्यादा से ज़्यादा 512 KiB पढ़े जाते हैं।

आइकॉन फ़ाइलें सिर्फ़ HEAD से और एक जाँच में ज़्यादा से ज़्यादा आठ जाँची जाती हैं; उनका असली पिक्सेल साइज़ और दिखावट नहीं परखी जाती।

सुरक्षा और गोपनीयता

पेस्ट किया JSON कभी आपके ब्राउज़र से बाहर नहीं जाता। URL मोड में Mutqan सर्वर को आपका डाला URL, उससे जुड़ा manifest URL और आठ तक आइकॉन URL मिलते हैं; वह उन्हें तय हेडर के साथ और आपकी किसी कुकी के बिना माँगता है और कुछ स्टोर नहीं करता।

संदर्भ

  • Web Application ManifestW3Cmanifest का स्पेसिफ़िकेशन: उसके मेंबर (name, short_name, start_url, scope, display, icons आदि), manifest URL के सापेक्ष उनका resolve होना, same-origin नियम और application/manifest+json मीडिया टाइप।
  • Web application manifest — MDNMDN Web Docs (Mozilla)ब्राउज़र जिन manifest मेंबर को सपोर्ट करते हैं, उन सबका संदर्भ — उनकी वैल्यू, एक उदाहरण manifest और पेज उसे link rel="manifest" से कैसे जोड़ता है।
  • What does it take to be installable?web.dev (Google)इंस्टॉल का विकल्प देने के Chrome के मानदंड: HTTPS, name या short_name वाला manifest, 192 और 512 पिक्सेल आइकॉन, start_url, इंस्टॉल होने लायक़ display मोड, prefer_related_applications का न होना या false होना, और यूज़र इंगेजमेंट।