Mise à jour : Comme cette réponse reçoit des votes négatifs, j'ai ajouté cette explication.
Le problème n'est peut-être pas le rechargement proprement dit, mais le fait que Mobile Safari traite le cache et les cookies de l'utilisateur différemment lorsque votre application web est ouverte via le navigateur et lorsqu'elle est "installée" en tant qu'application web sur l'écran d'accueil. Bien que les solutions proposées ici, qui utilisent localStorage, fonctionnent, elles représentent beaucoup de travail pour la logique côté client, ce qui peut être évité si votre serveur est déjà responsable de la persistance de l'état de la session de votre utilisateur. La solution de 30 secondes consiste simplement à définir explicitement le cookie de session pour qu'il ait une durée de vie plus longue.
Cela permet de conserver l'état intact même entre deux redémarrages de l'appareil. Ainsi, même si cela n'empêche pas techniquement le rechargement de l'application Web lorsqu'elle est lancée à partir de l'écran d'accueil, c'est un moyen facile de restaurer l'état pour l'utilisateur sans qu'il s'aperçoive du rechargement - ce qui, dans de nombreux cas, est le véritable problème.
Pour une discussion plus élaborée de cette stratégie et des exemples de code, jetez un coup d'œil à ces questions et à mes réponses :
0 votes
Donc vous n'avez même pas touché à des morceaux de cacao et avez juste enregistré le lien sur votre téléphone ?
3 votes
@Tim Specht : Je ne sais pas où vous voulez en venir, mais le PO demande une application web, pas une application native. Question connexe sur SO : stackoverflow.com/questions/6686654/ - Malheureusement, cette question n'a pas de réponse non plus.
0 votes
Voir ma réponse ici : stackoverflow.com/a/40707231/473637
0 votes
C'est une honte énorme :-(
0 votes
J'ai créé ce petit module react qui persiste cette information sur le stockage local et redirige vers la route précédente lorsque l'application se monte, ce problème est toujours d'actualité ( github.com/diogofcunha/react-persist-route )