Совместимость PWA с приложениями / службами Android?

Мы знаем, что часть нашего кода должна быть в машинном коде, но его можно инкапсулировать как службу Android. Мы хотели бы создать UI-ориентированную часть как прогрессивное веб-приложение (PWA).

Есть ли способ для PWA взаимодействовать с собственными приложениями на устройстве (например, вызывать их с параметрами и обрабатывать ответы / трансляции другого приложения)?

Могут ли намерения вызова PWA называться намерением и т. Д.? Какие есть возможности?


person Danikenan    schedule 29.11.2016    source источник
comment
Для этих требований, я думаю, лучше использовать гибридный подход, такой как Ionic или React Native.   -  person Hosar    schedule 29.11.2016


Ответы (1)


Отправка намерения поделиться (через Web Share API)

На Chrome Dev Summit 2016 команда объявила о Web Share API, который позволяет PWA активировать собственные возможности совместного использования устройства (например, см. < href = "https://youtu.be/YJwrBbze_Ec?t=29m11s" rel = "nofollow noreferrer"> демонстрационное видео Android) в ответ на жест пользователя (например, щелчок по ссылке; не может быть автоматическим ). API очень новый и находится на стадии первоначальной пробной версии.

В следующем примере обработчик кликов вызывает намерение «Поделиться», которое вызывает собственное средство выбора приложения для обмена данными с выбранным пользователем приложением. Передача URL-адреса (необязательно) позволяет этому приложению предоставлять ссылку пользователю, например. для детального просмотра.

function onClick() {
    navigator.share({
        title: document.title,
        text: "Hello World",
        url: window.location.href
    })
    .then(() => console.log('Successful share'))
    .catch(error => console.log('Error sharing:', error));
}

Отправка намерений Android из Chrome

Можно отправить намерение Android из PWA с помощью целевых URL-адресов. Этот метод также требует, чтобы пользователь инициировал жест (например, щелкнув ссылку; не может быть автоматическим).

Синтаксис намерения:

intent:
   HOST/URI-path // Optional host 
   #Intent; 
      package=[string]; 
      action=[string]; 
      category=[string]; 
      component=[string]; 
      scheme=[string]; 
   end; 

Например, щелчок по этому тегу привязки запускает приложение ZX Barcode Scanner:

<a href="intent://scan/#Intent;scheme=zxing;package=com.google.zxing.client.android;end"> Take a QR code </a>

Получение намерений Android

Я ничего не нашел в PWA, получающих намерения или широковещательных сообщениях из собственных приложений. Я не думаю, что это возможно.

person tony19    schedule 02.12.2016
comment
RE: намерения получения связаны с developers.google.com/web/fundamentals / integration /? - person Carl Walsh; 26.04.2019
comment
Что, если я хочу отправить намерение Android из Chrome (PWA) в приложение настроек andoird? - person Feronimus; 20.02.2020