Çok Kaynaklı Güvenilir Web Etkinlikleri

Güvenilir Web Etkinlikleri, PWA'nız gibi web uygulaması içeriğinizi Özel Sekmelere dayalı bir protokol kullanarak Android uygulamanızla entegre etmenin yeni bir yoludur.

ff-origin gezinme

Güvenilir Web Etkinliği'nin, içeriği tam ekranda göstermesi için Dijital Öğe Bağlantıları kullanılarak doğrulanması amacıyla kaynaklarının açılması gerekir.

Kullanıcı doğrulanmış kaynaktan ayrıldığında Özel Sekme kullanıcı arayüzü gösterilir. Özel Sekme'deki URL çubuğu, kullanıcılara artık uygulamanın dışında bir alanda gezindiklerini söyler ve kullanıcıya doğrulanmış kaynağa hızlıca dönmelerini sağlayan bir X düğmesi sağlar.

Ancak web uygulamalarının birden fazla kaynağa yayılan deneyimler oluşturması da yaygındır. Örneğin, ana deneyim www.example.com adresindeyken ödeme akışı checkout.example.com adresinde barındırılan bir alışveriş uygulaması olabilir.

Bu gibi durumlarda, Özel Sekmeler'in gösterilmesi istenmez. Bunun nedeni, yalnızca kullanıcının aynı uygulamada olması değil, aynı zamanda üst çubuğun kullanıcının uygulamayı terk ettiğini düşünmesine ve ödeme işlemini iptal etmesine neden olabilmesidir.

Güvenilir Web Etkinlikleri, geliştiricilerin birden fazla kaynağı doğrulamasına olanak tanır. Kullanıcı, bu kaynaklar arasında gezinirken tam ekranda kalır. Ana alan adında olduğu gibi, geliştiricinin doğrulanmış her kaynağı kontrol edebilmesi gerekir.

Birden fazla kaynak için doğrulama ayarlama

Ana kaynakta olduğu gibi, doğrulama Digital Asset Links aracılığıyla yapılır ve doğrulanacak her alanın kendi assetlinks.json dosyasının olması gerekir.

www.example.com ve odeme.example.com içeren örnekte:

  • https://www.example.com/.well-known/assetlinks.json
  • https://checkout.example.com/.well-known/assetlinks.json

Her alan aynı Android uygulamasına bağlandığından assetlinks.json dosyaları tamamen aynı görünür.

Android uygulamasının paket adının com.example.twa olduğunu varsayarsak her iki assetlink.json dosyası da aşağıdakine benzer bir içerik barındırır:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
  "namespace": "android_app",
  "package_name": "com.example",
   "sha256_cert_fingerprints": ["..."]}
}]

Android uygulamasına birden fazla kaynak ekleme

Android uygulamasında, asset_statements beyanının doğrulanması gereken tüm kaynakları içerecek şekilde güncellenmesi gerekir:

<string name="asset_statements">
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://www.example.com\"
    }
}],
[{
    \"relation\": [\"delegate_permission/common.handle_all_urls\"],
    \"target\": {
        \"namespace\": \"web\",
        \"site\": \"https://checkout.example.com\"
    }
}],
</string>

LauncherActivity'ye ek kaynaklar ekleme

Varsayılan LauncherActivity'yi kullanma

android-browser-helper destek kitaplığının bir parçası olan LauncherActivity, Android projesini yapılandırarak doğrulanacak birden fazla kaynak ekleme olanağı sunar.

Öncelikle res/values/strings.xml dosyasına bir string-array öğesi ekleyin. Doğrulanacak her ek URL, bir item alt öğesinin içinde yer alır:

...
<string-array name="additional_trusted_origins">
    <item>https://www.google.com</item>
</string-array>
...

Ardından, mevcut etkinlik öğesinin içine AndroidManifest.xml içinde LauncherActivity'a atıfta bulunan yeni bir meta-data etiketi ekleyin:

...
<activity android:name="com.google.androidbrowserhelper.trusted.LauncherActivity"
    android:label="@string/app_name">


    <meta-data
        android:name="android.support.customtabs.trusted.ADDITIONAL_TRUSTED_ORIGINS"
        android:resource="@array/additional_trusted_origins" />


    ...
</activity>
...

Özel LauncherActivity kullanma

Güvenilir Web Etkinliği'ni başlatmak için özel kod kullanırken, Güvenilir Web Etkinliği'ni başlatmak üzere Intent'i oluştururken setAdditionalTrustedOrigins çağrısı yaparak ek kaynaklar eklenebilir:

public void launcherWithMultipleOrigins(View view) {
  List<String> origins = Arrays.asList(
      "https://checkout.example.com/"
  );


  TrustedWebActivityIntentBuilder builder = new TrustedWebActivityIntentBuilder(LAUNCH_URI)
      .setAdditionalTrustedOrigins(origins);


  new TwaLauncher(this).launch(builder, null, null);
}

Sonuç

Bu adımlarla Güvenilir Web Etkinliği artık birden fazla kaynağı desteklemeye hazırdır. android-browser-helper, birden fazla kaynaklı Güvenilir Web Etkinlikleri için bir örnek uygulama içerir. Kontrol etmeyi unutmayın.

Sorun giderme

Digital Asset Links'i ayarlamak için birkaç işlem yapmanız gerekir. Uygulamanın üst kısmında Özel Sekmeler çubuğu hâlâ gösteriliyorsa yapılandırmayla ilgili bir sorun olabilir.

Güvenilir Web Etkinliği Hızlı Başlangıç Kılavuzu'nda, Dijital Öğe Bağlantısı sorunlarının nasıl hata ayıklanacağına dair mükemmel bir sorun giderme bölümü yer alır.

Ayrıca, cihaza yüklenen uygulamalarda Digital Asset Links hata ayıklamanıza yardımcı olan muhteşem Peter's Asset Link Tool aracı da vardır.