Çok Kaynaklı Güvenilir Web Etkinlikleri

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

ff-originde gezinme

Güvenilir Web Etkinliği, içeriğin tam ekranda gösterilebilmesi için açılan kaynakların Dijital Öğe Bağlantıları kullanılarak doğrulanmasını gerektirir.

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 şu anda uygulamanın dışındaki bir alanda gezindiklerini bildirir ve aynı zamanda kullanıcıya, doğrulanan kaynağa hızla geri dönmelerini sağlayan bir X düğmesi sağlar.

Ancak Web Uygulamalarının birden çok kaynağı kapsayan deneyimler oluşturması da yaygın bir durumdur. Bu duruma, ana deneyim www.example.com adresinde yer alan bir alışveriş uygulaması, ödeme akışı ise checkout.example.com adresinde barındırılır.

Bu gibi durumlarda, Özel Sekmelerin gösterilmesi istenmez. Bunun nedeni, yalnızca kullanıcının aynı uygulamada bulunması değil, aynı zamanda üst çubuğun kullanıcının uygulamadan ayrıldığını düşünmesini ve ödeme işlemini tamamlamasını gerektirmesidir.

Güvenilir Web Etkinlikleri, geliştiricilerin birden çok kaynağı doğrulamasına olanak tanır. Kullanıcı, bu kaynaklar arasında gezinirken tam ekran modunda kalır. Ana alanda olduğu gibi, geliştirici de doğrulanan her kaynağı kontrol edebilmelidir.

Birden çok kaynak için doğrulamayı ayarlama

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

www.example.com ve odeme.example.com adresini içeren örneğimizde şöyle olur:

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

Her alan adı aynı Android uygulamasına bağlandığı için assetlinks.json dosyaları tam olarak aynı görünür.

Android uygulamasının paket adının com.example.twa olduğu varsayıldığında, her iki assetlink.json dosyası da aşağıdakine benzer bir şey içerir:

[{
  "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 ekstra kaynaklar ekleyin

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 eklemenin bir yolunu sunar.

İlk olarak 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>
...

Daha sonra, AndroidManifest.xml içine LauncherActivity öğesine başvuruda bulunan mevcut etkinlik öğesinin içine 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

Bir Güvenilir Web Etkinliği'ni başlatmak için özel kod kullanırken, Güvenilir Web Etkinliği'ni başlatmak üzere Niyet oluştururken setAdditionalTrustedOrigins çağrısı yapılarak fazladan kaynak ekleyebilirsiniz:

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ımlar uygulandığında, Güvenilir Web Etkinliği artık birden çok kaynağı desteklemeye hazırdır. android-browser-helper, çok kaynaklı Güvenilir Web Etkinlikleri için bir örnek uygulamaya sahiptir. Kontrol etmeyi unutmayın.

Sorun giderme

Digital Asset Links'in kurulumu birkaç hareketli parçadan oluşur. Uygulama hâlâ üstte Özel Sekmeler çubuğunu gösteriyorsa muhtemelen yapılandırmayla ilgili bir sorun vardır.

Güvenilir Web Etkinliği Hızlı Başlangıç Kılavuzu'nda Digital Asset Link sorunlarının nasıl ayıklanacağı konusunda harika bir sorun giderme bölümü bulunur.

Ayrıca, cihazda yüklü uygulamalarda Dijital Öğe Bağlantıları'nın hatalarını ayıklamaya yardımcı olan Peter's Asset Link Aracı da vardır.