PWA SPA versus MPA parameters ?

WRInaute accro
Bonjour

J'ai déjà créé le système de cache de ma PWA.

Le cache est mis en oeuvre dans le HTML, dans du localStorage, par des échanges de type channelMessage entre le html et le service worker.

Cà marche, maintenant le problème est la navigation entre pages, et le futur référencement.

Si j'opte pour une SPA, la logique de navigation est à refaire en Javascript.

Si c'est une MPA, je dois mettre le code Javascript de cache / service worker dans chaque pages ?

Dans ce cas qui semblerait plus propice au référencement, quid des accès réseau à chaque requête https ?

Merci beaucoup de vos réponses.
 
WRInaute accro
Voilà voilà

Une SPA avec un paramètre get dans l'url vers un script routeur en php.

Je vais vérifier prochainement si mon implémentation fonctionne.

Schtroumpf.
 
WRInaute accro
Bon bon.

Ma PWA fonctionne.

L'interface est entièrement la même que celle de mon site.

Toutes les pages sont accessibles.

Je vais bientôt la mettre à disposition sur la page d'accueil de mon site.

Avant celà, quelques manips pour peaufiner.

Une petite question :

Il semblerait que Debian 12 ait apporté des modifications aux commandes shell et autres programmes.

La commande which est deprecated.

Alma Linux pourrait me convenir pour mon prochain VPS OVH.

Quels autres OS qui dure suffisamment longtemps ?

Merci beaucoup.

Amicalement.
 
WRInaute accro
Voilà voilà

Tous mes essais sont en localhost.

Cà marche très bien, mais il y a un bug.

Ma PWA est structurée sur un script PHP pwa.php, cible par url rewriting des urls des pages.

Pour gérer l'installation sur le device ( navigateur ), j'ai mis display="browser" dans le manifest.json.

Avec un bouton install avant l'insert par Javascript du contenu html, réactif théoriquement à l'event :
"beforeinstallprompt".

Voici le code :


HTML:
<button id="install_button">Install</button>

<script>

var deferredPrompt; // Allows to show the install prompt

const installButton = document.getElementById("install_button");

function installApp() {
  // Show the prompt
  deferredPrompt.prompt();
  installButton.disabled = true;

  // Wait for the user to respond to the prompt
  deferredPrompt.userChoice.then(choiceResult => {
    if (choiceResult.outcome === "accepted") {
      console.log("PWA setup accepted");
      installButton.hidden = true;
    } else {
      console.log("PWA setup rejected");
    }
    installButton.disabled = false;
    deferredPrompt = null;
  });
}

window.addEventListener("beforeinstallprompt", function(e) {
  console.log("beforeinstallprompt fired");
  // Prevent Chrome 76 and earlier from automatically showing a prompt
  e.preventDefault();
  // Stash the event so it can be triggered later.
  deferredPrompt = e;
  // Show the install button
  installButton.hidden = false;
  installButton.addEventListener("click", installApp);
});

window.addEventListener("appinstalled", function(evt) {
  console.log("appinstalled fired", evt);
});
        
</script>


Cà ne marche pas.

Aucun event visible dans la console, à part ceux de la PWA.


Le prompt ne s'affiche pas.

Par contre j'ai pu installer la PWA manuellement sous Chrome 114.0.5735.198 sous Linux Fedora 39.

Que faire ?

Merci beaucoup de votre aide.
 
WRInaute accro
Sans URL, difficile de t'aider.
Si le SW n'est pas à la racine, il faut mettre les entêtes Service-Worker-Allowed
 
WRInaute accro
Pardon.

Maintenant tout marche ( comme dirait Einstein ), même les pages de statistiques avec des historiques graphiques.

Mais l'installation nécessiterait une page séparée, indépendante et porte d'entrée dans la PWA.

Toutes les pages de la PWA, sont générées dynamiquement en Javascript.

Est-ce que vous pourriez me donner des exemples de cette façon, d'implémentation d'install de PWA ?

Je sais gérer les events pour l'install, et l'install fonctionne.

Merci beaucoup de votre aide.
 
WRInaute accro
Pardon.

Je n'ai plus qu'à programmer la page d'install de ma PWA.

J'ai la config de Matomo, et actuellement j'ai sirdata pour le site originel.

Quelle autre solution gratuite de gestion de cookies agréée par la CNIL ?

Cookie Consent ne fonctionne qu'avec des produits Google.

Merci beaucoup.
 
WRInaute accro
Merci beaucoup Madrileno

Est-ce que Sidata accepte plusieurs sites en mode Freemium ( gratuit ) ?

Je pourrais présenter ma PWA sur le site pronostics-courses.com ( actuellement en parking).

Merci beaucoup.
 
WRInaute accro
Bonjour Madrileno

J'ai reçu l'email de réponse de Sirdata.

C'est possible avec un compte Freemium, au choix, de configurer plusieurs sites de la même façon, ou bien avec des configurations différentes.

D'après l'email, il n'y a pas de limite de sites ni de nombres de pages.

En mode Freemium.

Super, merci beaucoup Madrileno, je n'ai plus qu'à faire ma page d'accueil/install.
 
Discussions similaires
Haut