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