Web Paylaşımı Hedefi, PWA'ların cihazınızda yüklü diğer uygulamalardan paylaşılan içerik almasına olanak tanır. için geçerlidir. Bu özellik, örneğin resim düzenleyiciler gibi uygulamalar tarafından bir kamera uygulamasından veya sosyal ağdan görüntü ya da video almak için
Chrome 86'dan itibaren Web Paylaşımı Hedefi, Chrome 86'dan itibaren Güvenilir Web Etkinliği. PWA (Progresif Web Uygulaması) zaten kullanıma hazır olsa da, Android Uygulaması.
Bu makalede, geliştiricinin Güvenilir Web Etkinlikleri hakkında bilgi sahibi olduğu varsayılmaktadır. Okumaya yeni başlayan okuyucular, Entegrasyon Kılavuzu yardımıyla, teknolojiyi kullanmaya başlayabilirsiniz.
Aynı şekilde, PWA'da Web Paylaşımı Hedefi uygulamasının tam açıklaması ve geliştiriciler bu makaleden daha fazla bilgi edinebilir.
https://scrapbook-pwa.web.app/ adresindeki demo uygulaması, bunun için PWA olarak kullanılacaktır makale ve kaynak kodu GitHub'da mevcuttur ve Android Uygulaması temel Güvenilir Web Etkinliği demosu.
Android uygulamasına Web Paylaşımı Hedefi ekleme
Web Paylaşımı'nı uygulamak üzere mevcut bir Güvenilir Web Etkinliği tabanlı uygulamayı değiştirmek için Hedefleyin, üç farklı dosyada değişiklik yapılması gerekir:
derleme.gradle
android-browser-helper kitaplığı, Web Paylaşımı Hedefi desteğiyle güncellendi. Kullanıcı İlk olarak uygulamayı 2.0.1 veya üzeri bir sürüm kullanacak şekilde güncelleyin.
dependencies {
...
implementation 'com.google.androidbrowserhelper:androidbrowserhelper:2.2.0'
}
res/strings.xml
Uygulamanın, desteklediği paylaşımın ayrıntılarını Güvenilir Web Etkinliği'ne bildirmesi gerekir alma (hangi URL'lerin açılacağı, kullanılacak yöntem ve desteklenen MIME türleri gibi).
Bu işlem, Güvenilir Web Etkinliği'nde bir dize kaynağıyla kullanıma sunulan bir JSON aracılığıyla yapılır. İlgili içeriği oluşturmak için kullanılan
alanları, Web Manifest'te bulunan share_target
alanıyla aynıdır ve
strings.xml
içinde, neredeyse olduğu gibi ve iki önemli not içeren bir dize:
- İşlem özelliğinin değeri, kaynak dahil olmak üzere tam URL olmalıdır.
- Çift tırnak içine alınmalıdır. Böylece her
"
,\"
haline gelir.
https://scrapbook-pwa.web.app/manifest.json dosyasının share_target
bölümü bu şekilde görünür.
örneğin:
{
...
"share_target": {
"action": "/_share-target",
"enctype": "multipart/form-data",
"method": "POST",
"params": {
"files": [{
"name": "media",
"accept": [
"audio/*",
"image/*",
"video/*"
]
}]
}
},
...
}
Yeni dize öğesi de aşağıdaki gibi görünür:
<string name="share_target">
{
\"action\": \"https://twa-web-scrapbook.web.app/_share-target\",
\"method\": \"POST\",
\"enctype\": \"multipart/form-data\",
\"params\": {
\"files\": [{
\"name\": \"media\",
\"accept\": [\"image/*\", \"audio/*\", \"video/*\"]
}]
}
}
</string>
AndroidManifest.xml
Android manifest'inde birkaç değişiklik yapılması gerekiyor. Öncelikle,
DelegationService
bildirildi, dışa aktarıldı ve etkinleştirildi.
Uygulamalarını temel demoya dayalı olarak oluşturan geliştiriciler bu hizmete zaten sahip olurlar eklenir ve işaretleme, uygulama etiketinin içinde yer almalı ve aşağıdaki gibi görünmelidir:
<service
android:name="com.google.androidbrowserhelper.trusted.DelegationService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.support.customtabs.trusted.TRUSTED_WEB_ACTIVITY_SERVICE"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</service>
Son olarak, LauncherActivity etkinlik etiketine iki yeni öğenin eklenmesi gerekir:
- string.xml dosyasında tanımlanan JSON'a başvuran bir meta-data
etiketi.
- Uygulamanın diğer kullanıcılara hangi MIME türlerini işleyebileceğini belirten bir intent-filter
ekleyebilirsiniz.
<meta-data
android:name="android.support.customtabs.trusted.METADATA_SHARE_TARGET"
android:resource="@string/share_target"/>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="audio/*" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
</intent-filter>
Yukarıdaki işaretlemede görebileceğiniz gibi, bildirilen her mime-type
için bir data
öğesi eklenmelidir
share_target
JSON dosyasında yaptınız.
Sonuç
Web Paylaşımı Hedefi entegrasyonu, Güvenilir Web Etkinliği içindeki PWA'ların, Android cihazda yüklü diğer uygulamalarla entegre olur.
Yukarıdaki adımlarda açıklandığı gibi, Güvenilir Web Etkinliği'ni kullanan mevcut Android uygulaması android-browser-helper tarafından basitleştirilmiştir.
PWA'da API'yi kullanma hakkında daha fazla bilgi edinmek için Web Paylaşımı Hedefi Web Share API: Progresif Web Uygulaması'ndan nasıl içerik paylaşacağınızı öğrenin.
Sorun giderme
Başka bir uygulamadan dosya paylaşmaya çalıştığımda uygulamam seçenek olarak görünmüyor.
Uygulama bir seçenek olarak görünmediğinde intent-filter
,
yanlış. intent-filter
işaretlemesini tekrar kontrol edin, doğru işlemleri içerdiğinden emin olun.
kategorisi ve mime-types
uygulama tarafından işleniyor.
Uygulamam seçenek olarak görünüyor, PWA başlatıldı ancak veriler paylaşılmıyor.
Buna yol açabilecek birkaç neden vardır. Bu, bakmanız gereken şeylerden oluşan bir kontrol listesidir:
- Digital Asset Links doğrulamasının başarılı olduğundan emin olun.
- string.xml dosyasındaki JSON dosyasının doğru olup olmadığını kontrol edin.