Veuillez noter que Chrome (sur Android) est le seul navigateur qui invite automatiquement l'utilisateur à installer votre PWA. Vous devez gérer manuellement les navigateurs iOS et les autres navigateurs Android. Statistiques indiquent (mise à jour 2021) que les 3 principaux navigateurs mobiles sont Chrome, Safari et Samsung internet (<6%).
Vous pouvez utiliser ce code pour vous aider rapidement :
// helps you detect mobile browsers (to show a relevant message as the process of installing your PWA changes from browser to browser)
var isMobile = {
Android: function () {
return navigator.userAgent.match(/Android/i);
},
BlackBerry: function () {
return navigator.userAgent.match(/BlackBerry/i);
},
iOS: function () {
return navigator.userAgent.match(/iPhone|iPad|iPod/i);
},
Opera: function () {
return navigator.userAgent.match(/Opera Mini/i);
},
Samsung: function () {
return navigator.userAgent.match(
/SAMSUNG|Samsung|SGH-[I|N|T]|GT-[I|N]|SM-[A|N|P|T|Z]|SHV-E|SCH-[I|J|R|S]|SPH-L/i,
);
},
Windows: function () {
return (
navigator.userAgent.match(/IEMobile/i) ||
navigator.userAgent.match(/WPDesktop/i)
);
},
any: function () {
return (
isMobile.Android() ||
isMobile.BlackBerry() ||
isMobile.iOS() ||
isMobile.Opera() ||
isMobile.Windows()
);
},
};
// use this to check if the user is already using your PWA - no need to prompt if in standalone
function isStandalone(): boolean {
const isStandalone = window.matchMedia("(display-mode: standalone)").matches;
if (document.referrer.startsWith("android-app://")) {
return true; // Trusted web app
} else if ("standalone" in navigator || isStandalone) {
return true;
}
return false;
}
Quant aux instructions d'installation :
Chrome - auto
Safari - Press "Share" icon then "Add to home"
Samsung internet - An "Install" icon will be shown on the top bar (I didn't quite understand if the app should be registered in Samsung Store for it to show) OR press "Menu" on the bottom bar then "Add/install to home"
Other browsers - Press menu on the bottom/top bar then "Add/install to home"
5 votes
Il n'y a pas de question bête :) Oui, j'ai cherché, et j'ai trouvé beaucoup de documentation concernant le fichier manifest.json pour permettre à l'utilisateur d'être invité par le navigateur, mais rien concernant le déclenchement programmatique de cette action depuis le site web.
1 votes
@GuillaumeLeMière J'ai déjà cherché, et le meilleur que j'ai trouvé est chantier naval.com/blog/2017/09/27/ mais je suis également très intéressé par l'existence d'une invite native pour cela.
0 votes
Bel article @m0meni ! Y a-t-il une autre solution que de dire à l'utilisateur quelle manipulation faire à votre connaissance ? Parce que c'est exactement ce que je voulais éviter lol.
1 votes
@GuillaumeLeMière pas à ma connaissance, c'est pourquoi je suis aussi impatient de voir cette question haha. Je pense que la réponse est que ce n'est pas encore implémenté en natif sur safari car il n'a obtenu le support PWA qu'il y a un point release, mais je veux aussi rester prudemment optimiste et espérer que je me trompe.
0 votes
Meh, je craignais la même chose, ils ont à peine commencé à soutenir les travailleurs web au début de cette année :/ Ils ne sont pas susceptibles de soutenir le prompt très bientôt, ils aiment trop leur revue AppStore. Eh bien, voyons si quelqu'un arrive avec une sorte de hack #PrayForPWA