Ç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 çıktığı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 çok kaynağa yayılan deneyimler oluşturması da sık karşılaşılan bir durumdur. Ana deneyimi www.example.com adresinde bulunan alışveriş uygulaması, ödeme akışı ise checkout.example.com adresinde barındırılır.

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 alanda olduğu gibi, geliştirici doğrulanan her kaynağı kontrol edebilmelidir.

Birden fazla kaynak için doğrulamayı 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 örneğimizde:

  • 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ğ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 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 bir 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, Digital Asset Link sorunlarının nasıl ayıklanacağıyla ilgili harika bir sorun giderme bölümü bulunur.

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.