Kullanıcı, Android'deki ana ekranına progresif web uygulamanızı eklediğinde Chrome, sizin için otomatik olarak bir APK oluşturur. Bu APK'ya bazen WebAPK denir. APK üzerinden yüklenen uygulamalar, uygulama başlatıcıda ve Android'in uygulama ayarlarında gösterilebilir ve bir dizi intent filtresi kaydedebilir.
Android'de PWA yüklemek, progresif web uygulamasını kullanıcının ana ekranına eklemekten daha fazlasını yapar. Chrome, uygulamanızın özel bir APK'sını otomatik olarak oluşturup yükler. Buna bazen WebAPK denir. APK üzerinden yüklenen uygulamalar, uygulama başlatıcıda ve Android'in uygulama ayarlarında gösterilebilir ve bir dizi intent filtresi kaydedebilir.
Chrome, WebAPK'yı oluşturmak için web uygulaması manifestini ve diğer meta verileri inceler. Manifest'te bir güncelleme algılandığında Chrome'un yeni bir APK oluşturması gerekir.
Android intent filtreleri
Android'e yüklenen bir Progressive Web Uygulaması, uygulamanın kapsamı dahilindeki tüm URL'ler için bir dizi intent filtresi kaydeder. Kullanıcı, uygulamanın kapsamı dahilindeki bir bağlantıyı tıkladığında uygulama, tarayıcı sekmesinde açılmak yerine açılır.
Aşağıdaki kısmi manifest.json
'yi inceleyin:
"start_url": "/",
"display": "standalone",
Bu API'yi kullanan bir web uygulaması, uygulama başlatıcıdan açıldığında https://example.com/
tarayıcı kromu olmadan bağımsız bir uygulama olarak açılır.
WebAPK aşağıdaki intent filtrelerini içerir:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/" />
</intent-filter>
Kullanıcı, yüklü bir uygulamadaki bir bağlantıyı tıklayarak https://example.com/read
'e giderse bağlantı, intent tarafından yakalanır ve Progressive Web Uygulaması'nda açılır.
Amaç filtrelerini kısıtlamak için scope
kullanma
Progressive Web Uygulamanızın sitenizdeki tüm URL'leri işlemesini istemiyorsanız web uygulaması manifest dosyanıza scope
mülkünü ekleyebilirsiniz. scope
mülkü, Android'e web uygulamanızı yalnızca URL origin
+ scope
ile eşleşirse açmasını söyler. Bu, hangi URL'lerin uygulamanız tarafından işleneceği ve hangilerinin tarayıcıda açılacağı üzerinde kontrol sahibi olmanızı sağlar.
Bu, uygulamanız ve uygulama dışındaki diğer içerikleriniz aynı alan adında olduğunda kullanışlıdır.
Aşağıdaki kısmi manifest.json
'yi düşünün:
"scope": "/app/",
"start_url": "/app/",
"display": "standalone",
Uygulama başlatıcıdan başlatıldığında https://example.com/app/
, tarayıcı kromu olmadan bağımsız bir uygulama olarak açılır.
Oluşturulan WebAPK, önceki gibi bir intent filtresi içerir ancak APK'nın AndroidManifest.xml
bölümünde farklı bir android:pathPrefix
özelliği bulunur:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:scheme="https"
android:host="example.com"
android:pathPrefix="/app/" />
</intent-filter>
Birkaç örneğe göz atalım:
https://example.com/app/
- /app/
içinde
https://example.com/app/read/book
- /app/
içinde
https://example.com/help/
- /app/
içinde değil
https://example.com/about/
- /app/
içinde değil
scope
hakkında daha fazla bilgi edinmek, bu özelliği ayarlamadığınızda ne olacağını öğrenmek ve uygulamanızın kapsamını tanımlamak için bu özelliği nasıl kullanabileceğinizi öğrenmek üzere scope
başlıklı makaleyi inceleyin.
İzinleri yönetme
İzinler diğer web uygulamalarıyla aynı şekilde çalışır ve yükleme sırasında istenemez. Bunun yerine, ideal olarak yalnızca gerçekten ihtiyaç duyduğunuzda çalışma zamanında istenmelidirler. Örneğin, ilk yüklemede kamera izni istemeyin. Bunun yerine, kullanıcı fotoğraf çekmeye çalışana kadar bekleyin.
Depolama alanını ve uygulama durumunu yönetme
Progressive web uygulaması bir APK aracılığıyla yüklenmesine rağmen Chrome, verileri depolamak için mevcut profili kullanır ve bu veriler ayrılmaz. Bu, tarayıcı ile yüklü uygulama arasında paylaşılan bir deneyime olanak tanır. Çerezler paylaşılır ve etkindir, istemci tarafındaki tüm depolama alanlarına erişilebilir ve hizmet çalışanı yüklenmiş ve kullanıma hazırdır.
WebAPK'yı güncelleme
WebAPK'ların nasıl güncellendiğiyle ilgili bilgiler Chrome'un web uygulaması manifestindeki güncellemeleri nasıl işlediği başlıklı makaleye taşındı.
Sık sorulan sorular
- Başlangıç ekranını oluşturmak için hangi simgeler kullanılır? :
- Başlangıç ekranı için en az iki simge (192 piksel ve 512 piksel) sağlamanızı öneririz. Başlangıç ekranındaki simgelerin çok küçük olduğunu bildirmiştiniz. Chrome 71 veya sonraki sürümlerde oluşturulan WebAPK'larda başlangıç ekranında daha büyük bir simge gösterilir. Önerilen simgeler sağlandığı sürece herhangi bir işlem yapmanız gerekmez.
- Kullanıcı sitenin yerel uygulamasını zaten yüklediyse ne olur?
- Kullanıcılara, ana ekrana ekleme özelliğinde olduğu gibi, yerel uygulamalardan bağımsız bir site ekleme olanağı sunulacaktır. Kullanıcıların her ikisini de yüklemesini bekliyorsanız sitenizin simgesini veya adını yerel uygulamanızdan ayırmanızı öneririz.
- Kullanıcı Chrome'un önbelleğini temizlerse yüklenen sitemin depolama alanı temizlenir mi?
- Evet.
- Yeni bir cihaz aldığımda uygulamam yeniden yüklenir mi?
- Şu anda mümkün değil ancak bu önemli bir alan olduğunu düşünüyor ve bu özelliği kullanıma sunmanın yollarını araştırıyoruz.
- İzinler nasıl ele alınır? Chrome istemi mi yoksa Android istemi mi gösterilir?
- İzinler yine Chrome üzerinden yönetilir. Kullanıcılar, izin vermeyle ilgili Chrome istemlerini görür ve bunları Chrome ayarlarından düzenleyebilir.
- Bu özellik hangi Android sürümlerinde çalışır?
- Progresif web uygulamaları, Android için Chrome'un yüklü olduğu tüm Android sürümlerine (özellikle Jelly Bean ve sonraki sürümler) yüklenebilir.
- Bu uygulamada Web Görünümü kullanılıyor mu?
- Hayır, site kullanıcının siteyi eklediği Chrome sürümünde açılır.
- Oluşturulan APK'ları Play Store'a yükleyebilir miyiz?
- Hayır. Kendi APK'nızı yüklemek istiyorsanız Güvenilir Web Etkinlikleri bölümüne göz atın.
- Bunlar Play Store'da listeleniyor mu?
- Hayır. Play Store'da listelemek için kendi APK'nızı yüklemek istiyorsanız Güvenilir Web Etkinlikleri'ne göz atın.
- Android'de başka bir tarayıcının geliştiricisiyim. Bu sorunsuz yükleme sürecini kullanabilir miyim? :
- Sorunun üzerinde çalışıyoruz. Bu özelliği Android'deki tüm tarayıcılarda kullanıma sunmayı hedefliyoruz. Yakında daha fazla bilgi paylaşacağız.