Android'de WebAPK'ları

Kullanıcı, Progresif Web Uygulamanızı Android'deki ana ekranına eklediğinde Chrome sizin için otomatik olarak bir APK oluşturur. Buna bazen WebAPK'sı denir. Uygulamanızın APK aracılığıyla yüklenmesi, uygulamanızın Android'in uygulama ayarlarındaki uygulama başlatıcıda görünmesini ve bir dizi amaç filtresi kaydetmesini sağlar.

Android'de PWA yüklemek kullanıcının Ana Ekranına Progresif Web Uygulaması eklemekten daha fazlasını yapar. Chrome, otomatik olarak uygulamanızın özel bir APK'sını oluşturur ve yükler. Bunu bazen WebAPK olarak adlandırırız. Uygulamanızın APK aracılığıyla yüklenmesi, uygulamanızın uygulama başlatıcıda, Android'in uygulama ayarlarında görünmesini ve bir dizi amaç filtresi kaydettirmesini sağlar.

Chrome, WebAPK'sını oluşturmak için web uygulaması manifest dosyasına ve diğer meta verilere bakar. Manifest'te bir güncelleme algılandığında, Chrome'un yeni bir APK oluşturması gerekir.

Android intent filtreleri

Bir İleri Web Uygulaması, Android'e yüklendiğinde, uygulama kapsamındaki tüm URL'ler için bir amaç filtresi grubu kaydeder. Kullanıcı, uygulamanın kapsamındaki bir bağlantıyı tıkladığında, uygulama bir tarayıcı sekmesinde açılmak yerine açılır.

Aşağıdaki manifest.json bölümünü göz önünde bulundurun:

"start_url": "/",
"display": "standalone",

Bu uygulamayı kullanan bir web uygulaması uygulama başlatıcıdan başlatıldığında https://example.com/, herhangi bir tarayıcı Chrome'u olmadan bağımsız bir uygulama olarak açılır.

WebAPK'sı 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 uygulamada https://example.com/read adresine yönlendiren bir bağlantıyı tıklarsa niyet yakalanır ve Progresif Web Uygulamasında açılır.

Amaç filtrelerini kısıtlamak için scope kullanma

Progresif Web Uygulamanızın sitenizdeki tüm URL'leri işlemesini istemiyorsanız scope mülkünü web uygulaması manifest dosyanıza ekleyebilirsiniz. scope özelliği, Android'e web uygulamanızı yalnızca URL'nin origin + scope ile eşleşmesi durumunda açmasını bildirir. Uygulamanız tarafından işlenecek URL'leri ve tarayıcıda açılması gereken URL'leri kontrol etmenize olanak tanır. Bu, uygulamanız ve diğer uygulama dışı içeriklerinizin aynı alanda olduğu durumlarda faydalıdır.

Aşağıdaki manifest.json bölümünü göz önünde bulundurun:

"scope": "/app/",
"start_url": "/app/",
"display": "standalone",

Uygulama başlatıcıdan başlatıldığında https://example.com/app/, tarayıcı Chrome'u olmadan bağımsız bir uygulama olarak açılır.

Önceden olduğu gibi, oluşturulan WebAPK'sında amaç filtresi bulunur, ancak APK'nın AndroidManifest.xml özelliğinde farklı bir android:pathPrefix özelliği kullanılır:

<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:

Yapılması gerekenler

https://example.com/app/ - /app/ içinde

Yapılması gerekenler

https://example.com/app/read/book - /app/ içinde

Yapılmaması gerekenler

https://example.com/help/ - /app/ içinde değil

Yapılmaması gerekenler

https://example.com/about/ - /app/ içinde değil

scope, ayarlamadığınızda ne olduğu ve uygulamanızın kapsamını tanımlamak için bunu nasıl kullanabileceğiniz hakkında daha fazla bilgi edinmek için scope adresini ziyaret edin.

İzinleri yönetme

İzinler, diğer web uygulamalarıyla aynı şekilde çalışır ve yükleme sırasında talep edilemez. Bunun yerine, çalışma zamanında, ideal olarak yalnızca gerçekten ihtiyacınız olduğunda istenmelidirler. Örneğin, ilk yüklemede kamera izni istemeyin, bunun yerine kullanıcının resim çekmeyi denemesini bekleyin.

Depolama alanını ve uygulama durumunu yönetme

Progresif web uygulaması bir APK aracılığıyla yüklenmiş olsa bile, Chrome herhangi bir veriyi depolamak için mevcut profili kullanır ve bu veriler ayrılmaz. Bu sayede tarayıcı ile yüklü uygulama arasında ortak bir deneyim sağlanır. Çerezler paylaşılır ve etkindir, tüm istemci taraflı depolama alanlarına erişilebilir ve hizmet çalışanı yüklü ve kullanıma hazırdır.

WebAPK'sı güncelleniyor

WebAPK'sının nasıl güncellendiğiyle ilgili bilgiler, Chrome'un web uygulaması manifestindeki güncellemeleri ele alma şekli 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 sağlamanızı öneririz: 192 piksel ve 512 piksel. Başlangıç ekranındaki simgelerin çok küçük olduğunu duyduk. Chrome 71 veya sonraki sürümlerde oluşturulan WebAPK'ları başlangıç ekranında daha büyük bir simge gösterir. Önerilen simgeler sağlandığı sürece herhangi bir işlem yapmanız gerekmez.
Kullanıcı sitenin yerel uygulamasını zaten yüklediyse ne olur?
Şu anda ana ekrana ekle seçeneğine benzer şekilde, kullanıcılar tüm yerel uygulamalardan bağımsız olarak site ekleyebilecek. Kullanıcıların her ikisini de yükleyebilmesini bekliyorsanız sitenizin simgesini veya adını yerel uygulamanızdan farklı kılmanızı öneririz.
Kullanıcı Chrome'un önbelleğini temizlerse yüklü sitemin depolama alanı da silinir mi?
Evet.
Yeni bir cihaz aldığımda uygulamam yeniden yüklenir mi?
Henüz değil. Ancak bunun önemli bir alan olduğunu düşünüyoruz ve bunun işe yaramasını sağlayacak yolları araştırıyoruz.
İzinler nasıl işlenir? Chrome istemini mi yoksa Android'i mi göreceğim?
İzinler Chrome üzerinden yönetilmeye devam edecek. Kullanıcılar Chrome'un izin verme istemlerini görecek ve bunları Chrome ayarlarında düzenleyebilecekler.
Bu özellik hangi Android sürümlerinde çalışır?
Progresif web uygulamaları, Android için Chrome çalıştıran tüm Android sürümlerine, özellikle de Jelly Bean ve sonraki sürümlere yüklenebilir.
Bu, Web Görünümü'nü kullanıyor mu?
Hayır, site, kullanıcının siteyi eklediği Chrome sürümünde açılıyor.
Oluşturulan APK'ları Play Store'a yükleyebilir miyiz?
Hayır. Kendi APK'nızı yüklemek istiyorsanız Güvenilir Web Etkinlikleri'ne göz atın.
Bunlar Play Store'da listeleniyor mu?
Hayır. Play Store'da listelenmek üzere kendi APK'nızı yüklemek istiyorsanız Güvenilir Web Etkinlikleri'ne bakın.
Android'deki başka bir tarayıcının geliştiricisiyim. Bu sorunsuz yükleme işlemini gerçekleştirebilir miyim? :
Üzerinde çalışıyoruz. Bu özelliği Android'deki tüm tarayıcılarda kullanıma sunmak için çalışıyoruz. Kısa süre içinde bu konuda daha fazla ayrıntı paylaşacağız.