web-dev-qa-db-fra.com

Une application Web progressive peut-elle être enregistrée comme option de partage dans Android?

Question totale pour les débutants.

Tl; dr - Une application Web progressive peut-elle être enregistrée comme option de partage dans Android?

Dans Android, nous pouvons "partager" des choses avec d'autres applications Android installées. Par exemple, supposons que j'ai Chrome pour Android et l'application Google+ installée sur mon Android appareil. Je peux partager un site Web que je consulte dans Chrome sur Google+ en accédant au menu hamburger de Chrome → Partager… → Google+ (avec une liste des autres applications natives installées). Une application Web progressive peut-elle être enregistrée dans cette liste d'applications natives installées? Si oui, pouvez-vous me montrer quelques exemples ou laboratoires de code? Si non, cette fonctionnalité est-elle intégrée à l'application Web progressive ou à la feuille de route d'Android?

29
fung

Depuis récemment, un PWA peut s'enregistrer en tant que cible de partage, via manifest.json.

Veuillez en savoir plus ici: https://developers.google.com/web/updates/2018/12/web-share-target

10
KIR

Non, malheureusement, ce n'est pas possible.

Le système d'intention est surtout utile pour les applications natives.

La seule chose que vous pouvez faire est de créer des URL qui sont analysées comme des intentions sur un appareil Android et transmises aux applications natives, mais cela ne peut pas être inversé, c'est-à-dire à partir d'une application native -> déclencheur Intention -> application Web. Le principal obstacle à cela est qu'il n'y a aucun moyen pour une application Web d'indiquer qu'elle peut gérer une intention (effectuée dans les applications natives via AndroidManifest).

7
Matt Gaunt

Oui. Maintenant, vous pouvez le faire sur Chrome pour Android de version 71 + .

En supposant que vous disposez de toutes les bases de PWA (HTTPS, agent de service enregistré et manifeste), vous n'avez qu'à ajouter la section suivante dans votre manifest.json:

  "share_target":
  {
    "action": "/share",
    "params":
    {
      "title": "title",
      "text": "text",
      "url": "url"
    }
  },

J'ai écrit un plus tutoriel détaillé si vous êtes coincé à n'importe quelle étape.

4
Jakub Chodounsky