Web uygulaması manifest dosyası ekle

Tarayıcı desteği

  • Chrome: 39.
  • Edge: 79.
  • Firefox: Desteklenmez.
  • Safari: 17.

Kaynak

Web uygulaması manifesti, tarayıcıya Progressive Web Uygulamanızın (PWA) kullanıcının masaüstüne veya mobil cihazına yüklendiğinde nasıl davranması gerektiğini söyleyen bir JSON dosyasıdır. Tipik bir manifest dosyası en azından şunları içerir:

  • Uygulamanın adı
  • Uygulamanın kullanması gereken simgeler
  • Uygulama açıldığında açılması gereken URL

Manifest dosyasını oluşturma

Manifest dosyası herhangi bir ada sahip olabilir ancak genellikle manifest.json olarak adlandırılır ve kökten (web sitenizin üst düzey dizini) yayınlanır. Spesifikasyonda uzantının .webmanifest olması önerilir ancak manifest dosyalarınızın okunmasını kolaylaştırmak için JSON dosyaları kullanmak isteyebilirsiniz.

Tipik bir manifest şöyle görünür:

{
 
"short_name": "Weather",
 
"name": "Weather: Do I need an umbrella?",
 
"icons": [
   
{
     
"src": "/images/icons-vector.svg",
     
"type": "image/svg+xml",
     
"sizes": "512x512"
   
},
   
{
     
"src": "/images/icons-192.png",
     
"type": "image/png",
     
"sizes": "192x192"
   
},
   
{
     
"src": "/images/icons-512.png",
     
"type": "image/png",
     
"sizes": "512x512"
   
}
 
],
 
"id": "/?source=pwa",
 
"start_url": "/?source=pwa",
 
"background_color": "#3367D6",
 
"display": "standalone",
 
"scope": "/",
 
"theme_color": "#3367D6",
 
"shortcuts": [
   
{
     
"name": "How's the weather today?",
     
"short_name": "Today",
     
"description": "View weather information for today",
     
"url": "/today?source=pwa",
     
"icons": [{ "src": "/images/today.png", "sizes": "192x192" }]
   
},
   
{
     
"name": "How's the weather tomorrow?",
     
"short_name": "Tomorrow",
     
"description": "View weather information for tomorrow",
     
"url": "/tomorrow?source=pwa",
     
"icons": [{ "src": "/images/tomorrow.png", "sizes": "192x192" }]
   
}
 
],
 
"description": "Weather forecast information",
 
"screenshots": [
   
{
     
"src": "/images/screenshot1.png",
     
"type": "image/png",
     
"sizes": "540x720",
     
"form_factor": "narrow"
   
},
   
{
     
"src": "/images/screenshot2.jpg",
     
"type": "image/jpg",
     
"sizes": "720x540",
     
"form_factor": "wide"
   
}
 
]
}

Önemli manifest özellikleri

short_name ve name

Manifest dosyanızda short_name veya name özelliklerinden en az birini sağlamanız gerekir. Her ikisini de sağlarsanız name, uygulama yüklenirken kullanılır ve short_name, kullanıcının ana ekranında, başlatıcısında veya alanın sınırlı olduğu diğer yerlerde kullanılır.

icons

Kullanıcılar PWA'nızı yüklediğinde, tarayıcının ana ekranda, uygulama başlatıcıda, görev değiştiricide, açılış ekranında ve diğer yerlerde kullanacağı bir dizi simge tanımlayabilirsiniz.

icons mülkü, resim nesneleri dizisidir. Her nesne src, bir sizes mülkü ve resmin type özelliğini içermelidir. Android'de bazen uyarlanabilir simge olarak da adlandırılan maskelenebilir simgeleri kullanmak için icon özelliğine "purpose": "any maskable" ekleyin.

Chromium için en az 192x192 piksel ve 512x512 piksel boyutunda bir simge sağlamanız gerekir. Yalnızca bu iki simge boyutu sağlanırsa Chrome, simgeleri cihaza sığacak şekilde otomatik olarak ölçeklendirir. Kendi simgelerinizi ölçeklendirmeyi ve piksel mükemmelliği için ayarlama yapmayı tercih ediyorsanız simgeleri 48 dp'lik artışlarla sağlayın.

id

id özelliği, uygulamanız için kullanılan tanımlayıcıyı açık bir şekilde tanımlamanıza olanak tanır. id özelliğinin manifeste eklenmesi, start_url öğesine veya manifestin konumuna olan bağımlılığı ortadan kaldırır ve bunların gelecekte güncellenmesini mümkün kılar. Daha fazla bilgi için Web uygulaması manifest kimliği mülküyle PWA'ları benzersiz şekilde tanımlama başlıklı makaleyi inceleyin.

start_url

start_url zorunlu bir özelliktir. Tarayıcıya, uygulamanızın başlatılırken nerede başlaması gerektiğini söyler ve uygulamanın, kullanıcının ana ekranına eklediği sayfadan başlatılmasını engeller.

start_url, kullanıcıyı bir ürün açılış sayfasına değil, doğrudan uygulamanıza yönlendirmelidir. Kullanıcının uygulamanızı açtıktan hemen sonra ne yapmak isteyeceğini düşünün ve kullanıcıyı oraya yönlendirin.

background_color

background_color mülkü, uygulama mobil cihazda ilk kez açıldığında açılış ekranında kullanılır.

display

Uygulamanız başlatıldığında hangi tarayıcı kullanıcı arayüzünün gösterileceğini özelleştirebilirsiniz. Örneğin, adres çubuğunu ve tarayıcı kullanıcı arayüzü öğelerini gizleyebilirsiniz. Oyunlar tam ekranda başlatılacak şekilde ayarlanabilir. display mülkü aşağıdaki değerlerden birini alır:

Mülk Davranış
fullscreen Web uygulamasını tarayıcı kullanıcı arayüzü olmadan açar ve mevcut ekran alanının tamamını kaplar.
standalone Bağımsız bir uygulama gibi görünmek ve hissettirmek için web uygulamasını açar. Uygulama, tarayıcıdan ayrı olarak kendi penceresinde çalışır ve adres çubuğu gibi standart tarayıcı kullanıcı arayüzü öğelerini gizler.
Bağımsız ekrana sahip bir PWA penceresi örneği.
Bağımsız kullanıcı arayüzü.
minimal-ui Bu mod, standalone'e benzer ancak kullanıcıya gezinmeyi kontrol etmek için geri ve yeniden yükle düğmeleri gibi minimum düzeyde kullanıcı arayüzü öğeleri sağlar.
Minimum kullanıcı arayüzü görüntüleme içeren bir PWA penceresi örneği.
Minimal kullanıcı arayüzü.
browser Standart bir tarayıcı deneyimi.

display_override

Web uygulamanızın nasıl görüntüleneceğini seçmek için manifest dosyasında display modunu daha önce açıklandığı gibi ayarlayın. Tarayıcıların tüm görüntüleme modlarını desteklemesi gerekmez ancak özellik tanımlı yedek zinciri ("fullscreen""standalone""minimal-ui""browser") desteklemeleri gerekir. Belirli bir modu desteklemiyorlarsa zincirdeki bir sonraki görüntüleme moduna geçerler. Nadir durumlarda bu yedekler sorunlara neden olabilir. Örneğin, bir geliştirici "minimal-ui" desteklenmediğinde "browser" görüntüleme moduna geri dönmek zorunda kalmadan "minimal-ui" isteğinde bulunamaz. Mevcut davranış, yedek zincirinde yer almadıkları için yeni görüntüleme modlarının geriye dönük uyumlu bir şekilde tanıtılmasını da imkansız hale getirir.

Tarayıcının display özelliğinden önce dikkate aldığı display_override özelliğini kullanarak kendi yedek dizinizi ayarlayabilirsiniz. Değeri, listelenen sırada dikkate alınan bir dize dizisidir ve desteklenen ilk görüntüleme modu uygulanır. Hiçbiri desteklenmiyorsa tarayıcı, display alanını değerlendirmeye geçer. display alanı yoksa tarayıcı display_override değerini yoksayar.

Aşağıda, display_override özelliğinin nasıl kullanılacağına dair bir örnek verilmiştir. "window-control-overlay" ile ilgili ayrıntılar bu sayfanın kapsamı dışındadır.

{
 
"display_override": ["window-control-overlay", "minimal-ui"],
 
"display": "standalone",
}

Tarayıcı, bu uygulamayı yüklerken önce "window-control-overlay" kullanmaya çalışır. Bu değer kullanılamıyorsa "minimal-ui" değerine, ardından display mülkünden "standalone" değerine geri döner. Bunların hiçbiri kullanılamıyorsa tarayıcı standart yedek zincire döner.

scope

Uygulamanızın scope, tarayıcının uygulamanızın bir parçası olarak kabul ettiği URL'ler kümesidir. scope, uygulamaya tüm giriş ve çıkış noktalarını içeren URL yapısını kontrol eder ve tarayıcı, kullanıcının uygulamadan ne zaman ayrıldığını belirlemek için bu yapıyı kullanır.

scope ile ilgili birkaç not daha:

  • Manifestinize scope eklemezseniz varsayılan olarak ima edilen scope, dosya adı, sorgu ve parçanın kaldırıldığı başlangıç URL'sidir.
  • scope özelliği, web uygulamanızdaki gezinme kapsamının genişletilmesine olanak tanıyan göreli bir yol (../) veya daha üst düzey bir yol (/) olabilir.
  • start_url kapsamda olmalıdır.
  • start_url, scope özelliğinde tanımlanan yola bağlıdır.
  • / ile başlayan bir start_url her zaman kaynağın kökü olur.

theme_color

theme_color, araç çubuğunun rengini belirler ve görev değiştiricilerdeki uygulama önizlemesine yansıtılabilir. theme_color, belge başınızda belirtilen meta tema rengiyle eşleşmelidir.

Özel theme_color içeren bir PWA penceresi örneği.
Özel theme_color içeren bir PWA penceresi örneği.

Medya sorgularında theme_color

Tarayıcı desteği

  • Chrome: 93.
  • Edge: 93.
  • Firefox: 106.
  • Safari: 15.

Kaynak

meta tema rengi öğesinin media özelliğini kullanarak medya sorgusunda theme_color değerini ayarlayabilirsiniz. Örneğin, bu yöntemle açık mod için bir renk, koyu mod için de başka bir renk tanımlayabilirsiniz. Ancak bu tercihleri manifest dosyanızda tanımlayamazsınız. Daha fazla bilgi için w3c/manifest#975 GitHub sorununa göz atın.

<meta name="theme-color" media="(prefers-color-scheme: light)" content="white">
<meta name="theme-color" media="(prefers-color-scheme: dark)"  content="black">

shortcuts

shortcuts mülkü, uygulamanızdaki önemli görevlere hızlı erişim sağlayan bir uygulama kısayolu nesnesi dizisidir. Her üye, en az bir name ve bir url içeren bir sözlüktür.

description

description mülkü, uygulamanızın amacını açıklar.

Chrome'da, tüm platformlarda maksimum açıklama uzunluğu 300 karakterdir. Açıklama bundan uzunsa tarayıcı, açıklamayı üç nokta karakteriyle kısaltır. Android'de açıklama, en fazla yedi satır metin içermelidir.

screenshots

screenshots mülkü, uygulamanızın yaygın kullanım senaryolarını temsil eden bir resim nesnesi dizisidir. Her nesne, src, bir sizes mülkü ve resmin type değerini içermelidir. form_factor özelliği isteğe bağlıdır. Yalnızca geniş ekranlarda geçerli olan ekran görüntüleri için "wide", yalnızca dar ekran görüntüleri için "narrow" değerini belirleyebilirsiniz.

Chrome'da resim aşağıdaki ölçütleri karşılamalıdır:

  • Genişlik ve yükseklik en az 320, en fazla 3.840 piksel olmalıdır.
  • Maksimum boyut, minimum boyutun 2,3 katından fazla olamaz.
  • Uygun form faktörüyle eşleşen tüm ekran görüntülerinin en boy oranı aynı olmalıdır.
    • Chrome 109'dan itibaren, masaüstünde yalnızca form_factor özelliği "wide" olarak ayarlanmış ekran görüntüleri gösterilir.
  • Chrome 109'dan itibaren, form_factor "wide" olarak ayarlanmış ekran görüntüleri Android'de yoksayılır. form_factor içermeyen ekran görüntüleri, geriye dönük uyumluluk için yine gösterilir.

Masaüstünde Chrome, bu ölçütleri karşılayan en az bir ve en fazla sekiz ekran görüntüsü gösterir. Diğerleri yoksayılır.

Android'deki Chrome, bu ölçütleri karşılayan en az bir ve en fazla beş ekran görüntüsü gösterir. Diğer ekran görüntüleri yoksayılır.

Masaüstü ve mobil cihazlardaki daha zengin yükleme kullanıcı arayüzünün ekran görüntüleri.
Masaüstü ve mobil cihazlarda daha zengin yükleme kullanıcı arayüzü.

Manifesti oluşturduktan sonra, Progressive Web Uygulamanızın tüm sayfalarına bir <link> etiketi ekleyin. Örneğin:

<link rel="manifest" href="/manifest.json">

Manifest dosyanızı test etme

Manifest dosyanızın doğru şekilde ayarlandığını doğrulamak için Chrome Geliştirici Araçları'nın Uygulama panelindeki Manifest bölmesini kullanın.

Chrome Geliştirici Araçları&#39;nda manifest sekmesinin seçili olduğu uygulama paneli.
Manifestinizi Geliştirici Araçları'nda test edin.

Bu bölmede, manifest'inizin birçok özelliğinin kullanıcılar tarafından okunabilir bir sürümü sağlanır ve tüm resimlerin düzgün şekilde yüklendiğini doğrulayabilirsiniz.

Mobil cihazlarda başlangıç ekranları

Uygulamanız mobil cihazlarda ilk kez açıldığında tarayıcının başlatılması ve ilk içeriğin oluşturulmaya başlaması biraz zaman alabilir. Tarayıcı, kullanıcının uygulamanın çalışmadığını düşünmesine neden olabilecek beyaz bir ekran göstermek yerine ilk boyama işlemine kadar bir açılış ekranı gösterir.

Chrome, başlangıç ekranını manifest dosyanızda belirtilen name, background_color ve icons yer tutucusundan otomatik olarak oluşturur. Başlangıç ekranından uygulamaya yumuşak bir geçiş oluşturmak için yükleme sayfasındaki renk background_color ile aynı olmalıdır.

Chrome, açılış ekranları için cihaz çözünürlüğüyle en iyi eşleşen simgeyi seçer. 192 piksel ve 512 piksel simgeler sağlamak çoğu durumda yeterlidir, ancak daha iyi bir eşleşme için ek simgeler sağlayabilirsiniz.

Daha fazla bilgi

Web uygulaması manifestinize ekleyebileceğiniz diğer özellikler hakkında bilgi edinmek için MDN Web Uygulaması Manifesti belgelerine bakın.