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.
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.
Her kaynağa bir assetlinks dosyası ekleme
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.