Aracılığıyla paylaş


Aşamalı Web Uygulamalarını Windows Share ile tümleştirme

Bu makalede, Aşamalı Web Uygulamasının (PWA) Windows Share özelliğiyle nasıl tümleştirilesi açıklanmaktadır. Bu özellik, kullanıcıların bir Windows uygulamasından diğerine içerik paylaşmasına olanak tanır. PWA, uygulama içindeki paylaşılan dosyaları almak ve işlemek için Paylaşım Hedefi olarak kaydedilir.

Paylaşım Hedefi nedir?

Paylaşım Hedefi, Windows 8'de kullanıma sunulan bir özelliktir ve bir uygulamanın başka bir uygulamadan veri almasına olanak tanır. Hedefi Paylaş, Pano gibi çalışır ancak dinamik içerikle çalışır.

PWA'nızdan içerik paylaşma

İçeriği paylaşmak için, PWA içerik (metin, bağlantı veya dosyalar gibi) oluşturur ve paylaşılan içeriği işletim sistemine bırakır. İşletim sistemi, kullanıcının bu içeriği almak için hangi uygulamayı kullanmak istediğine karar vermesine olanak tanır. PWA'lar Web Paylaşımı API'sini kullanarak Windows'da Paylaşım Sayfası'nın görüntülenmesini tetikleyebilir. Web Paylaşımı API'si Microsoft Edge ve diğer Chromium tabanlı tarayıcılarda desteklenir.

PWA'dan içerik paylaşmaya ilişkin eksiksiz bir örnek için Microsoft Edge belgelerinde İçerik paylaşma bölümüne bakın.

PWA'nızda paylaşılan dosyaları alma

PWA, içerik almak için içerik hedefi görevi görür. PWA, işletim sistemine içerik paylaşım hedefi olarak kaydedilmelidir.

Üye, share_target sistemin paylaşılan içeriği uygulamanıza geçirmesi için gerekli bilgileri içermelidir. Aşağıdaki örnek bildirim share_target yapılandırmasını göz önünde bulundurun:

"share_target": {
  "action": "./share_target_path/?custom_param=foo",
  "method": "POST",
  "enctype": "multipart/form-data",
  "params": {
    "files": [
      {
        "name": "mapped_files",
        "accept": ["image/jpeg"]
      }
    ]
  }
},

Uygulamanız kullanıcı tarafından paylaşılan içerik için hedef olarak seçildiğinde PWA başlatılır. GET Özelliği tarafından belirtilen URL'ye bir HTTP isteği yapılıraction. Paylaşılan veriler , titleve text sorgu parametreleri olarak urlgeçirilir. Aşağıdaki istek yapılır: /handle-shared-content/?title=shared title&text=shared text&url=shared url.

Aşağıdaki örnekte kapsamı belirlenmiş hizmet çalışanının nasıl kaydedilecekleri gösterilmektedir:

navigator.serviceWorker.register('scoped-service-worker.js',
                { scope: "./share_target_path/" })

Hizmet çalışanı, paylaşım verilerini istediğiniz gibi işler ve ardından isteği yerine getirerek isteği özel yolun dışına geri yönlendirebilir. Aşağıdaki örnekte, isteğin özel yoldan nasıl geri yönlendirildiği gösterilmektedir:

self.addEventListener('fetch', (event) => {
    event.respondWith((async () => {
        // Read the shared data here, then
        // Redirect back out of the share_target_path to the actual site
        return Response.redirect(event.request.url.replace("share_target_path/", ""));
    })());
    return;
});

Daha fazla bilgi için Microsoft Edge belgelerindeki Paylaşılan içeriği alma örneğine bakın.

Performansla ilgili dikkat edilmesi gerekenler

Getirme işleyicisi yalnızca paylaşım desteği için eklenirse, istekler hizmet çalışanı tarafından kesintiye uğradığında olası gecikme sorunları ortaya çıkabilir. Bu sorunu gidermek için, share_target'yı sahte bir alt yol olarak ayarlamayı ve tam olarak bu yol için kapsam belirlenmiş bir hizmet çalışanı kaydetmeyi göz önünde bulundurun. Bu yaklaşım, diğer çağrılar için aynı getirme işleyicisini kaydetmeden paylaşım hedefi için bir getirme işleyicisi kullanılmasını sağlar.

Örnek PWA uygulaması

GitHub'da PWA logolu yazıcı örnek uygulaması, PWA'yı Windows Paylaşım Sayfası ile tümleştirmeyi gösterir. Uygulama, kullanıcıların PWA logosunu bir yazıcıya yazdırmasına olanak tanır. Uygulama, logoyu diğer uygulamalarla paylaşmak için Windows Paylaşım Sayfası'nı kullanır.

Ayrıca bakınız