J'ai une application sur Google Play Store. Lorsqu'une version de mise à jour est disponible, l'ancienne version deviendra inutilisable - c'est-à-dire que si les utilisateurs ne mettent pas à jour l'application, ils n'entrent pas dans l'application. Comment puis-je forcer les utilisateurs à mettre à jour l'application lorsqu'une nouvelle version est disponible?
100
Réponses:
Je suis d'accord avec le point de Scott Helme dans une autre réponse ici. Mais dans certaines situations extrêmes (problèmes de sécurité, changements de rupture d'API ...) où vous avez absolument besoin que les utilisateurs se mettent à jour pour continuer à utiliser l'application, vous pouvez fournir une API de contrôle de version simple. L'API ressemblerait à ceci:
versionCheck API:
Paramètres de la demande:
int appVersion
Réponse
boolean forceUpgrade
boolean recommendUpgrade
Lorsque votre application démarre, vous pouvez appeler cette API qui transmet la version actuelle de l'application et vérifier la réponse de l'appel d'API de contrôle de version.
Si tel
forceUpgrade
est le castrue
, affichez une boîte de dialogue contextuelle avec des options permettant à l'utilisateur de quitter l'application ou d'accéder à Google Play Store pour mettre à niveau l'application.Sinon , si
recommendUpgrade
esttrue
, afficher la boîte de dialogue pop-up avec des options pour mettre à jour ou de continuer à utiliser l'application.Même avec cette capacité de mise à niveau forcée en place, vous devez continuer à prendre en charge les anciennes versions, à moins que cela ne soit absolument nécessaire.
la source
essayez ceci: vous devez d'abord effectuer une demande d'appel vers le lien Playstore, récupérer la version actuelle à partir de là, puis la comparer avec votre version actuelle.
la source
Vous ne devriez pas arrêter de prendre en charge une version plus ancienne dès qu'une nouvelle version sort. Cela se traduira par une expérience utilisateur terrible. Je ne connais aucun éditeur de logiciel qui fasse cela, pour une bonne raison.
Que se passe-t-il si l'utilisateur ne peut pas mettre à jour ou ne le souhaite pas à ce moment-là? Ils ne peuvent tout simplement pas utiliser votre application, ce qui est mauvais.
Google ne propose aucune option pour le suivi des versions de ce type, vous devrez donc lancer le vôtre. Un simple service Web pour renvoyer la version actuelle en direct que votre application peut vérifier serait suffisant. Vous pouvez ensuite mettre à jour la version et l'application saura qu'elle est obsolète. Je recommanderais uniquement de l'utiliser pour informer vos utilisateurs qu'il y a une mise à jour plus rapidement que selon Google Play. Il ne doit pas vraiment être utilisé pour empêcher l'application de fonctionner, juste pour inviter l'utilisateur à mettre à jour.
la source
Solution de l'équipe Google
À partir d'Android 5.0, cela est facilement réalisable grâce au nouveau mécanisme de mise à jour de Google Play In App. Les exigences sont d'avoir la bibliothèque Play Core de la version 1.5.0+ et d'utiliser l'idstribution App Bundles au lieu d'apks.
La bibliothèque vous propose 2 manières différentes d'informer les utilisateurs de la mise à jour:
Flexible, lorsque les utilisateurs peuvent continuer à utiliser l'application pendant qu'elle est mise à jour en arrière-plan.
Immédiat - écran de blocage qui ne permet pas à un utilisateur d'entrer dans l'application jusqu'à ce qu'il la mette à jour.
Il y a les prochaines étapes pour le mettre en œuvre:
Toutes ces étapes de mise en œuvre sont décrites en détail sur le site officiel: https://developer.android.com/guide/app-bundle/in-app-updates
la source
Les réponses de Scott et Michael sont correctes. Hébergez un service qui fournit un numéro de version minimale que vous prenez en charge et comparez-le à la version installée. J'espère que vous ne devriez jamais avoir besoin de l'utiliser, mais c'est une bouée de sauvetage si une version existe, vous devez absolument tuer en raison d'un défaut grave.
Je voulais juste ajouter le code pour ce qu'il faut faire ensuite. Voici comment vous lancez ensuite Google Play Intent et les amenez à votre nouvelle version dans le magasin après avoir invité l'utilisateur à mettre à niveau.
Vous devriez reconsidérer votre conception si vous devez forcer les mises à niveau à chaque version.
la source
Google a introduit la bibliothèque de mises à jour dans l'application, ( https://developer.android.com/guide/app-bundle/in-app-updates ), elle fonctionne sur Lollipop + et vous donne la possibilité de demander à l'utilisateur une mise à jour avec un joli dialogue (FLEXIBLE) ou avec un message plein écran obligatoire (IMMEDIATE).
Vous devez mettre en œuvre ce dernier. Voici à quoi cela ressemblera:
J'ai couvert tout le code dans cette réponse: https://stackoverflow.com/a/56808529/5502121
la source
Je recommande vivement de vérifier la configuration à distance de Firebase pour cela.
Je l'ai implémenté en utilisant un paramètre - app_version_enabled - avec une condition "Versions Android désactivées" qui ressemble à ceci:
La valeur par défaut du paramètre est "true", mais les versions Android désactivées ont la valeur false. Dans mon regex pour les versions Android désactivées, vous pouvez ajouter plus de versions désactivées simplement avec un autre
|{version name}
intérieur de ces parenthèses.Ensuite, je vérifie simplement si la configuration indique que la version est activée ou non - j'ai une activité que je lance qui oblige l'utilisateur à mettre à niveau. Je vérifie les deux seuls endroits où l'application peut être lancée de l'extérieur (mon activité de lanceur par défaut et une activité de gestion des intentions). Étant donné que Remote Config fonctionne sur la base du cache, il ne capturera pas immédiatement les versions «désactivées» de l'application si le temps requis ne s'est pas écoulé pour que le cache soit invalidé, mais c'est au plus 12 heures si vous passez leur valeur d'expiration de cache recommandée.
la source
Officiellement, Google fournit une API Android pour cela.
L' API de mise à jour est maintenant disponible - https://developer.android.com/guide/app-bundle/in-app-updates
la source
vérifier le code de version de l'apk local et play store
classe d'implémentation pour la vérification de version
boîte de dialogue pour la mise à jour
présentation de la boîte de dialogue
la source
Il est préférable de définir notre propre processus pour la mise à niveau.
Android et iOS: si la dernière version de l'application est disponible, l'alerte sera affichée sous la forme "Dernière version disponible avec plus de fonctionnalités, pour mettre à niveau, cliquez sur le bouton de mise à niveau" (Alerte avec le bouton "Upgarde" et "Non. Merci".) Ensuite, l'application sera redirigée vers playstore / Appstore et il ouvrira la dernière version.
Avant le processus de mise à niveau, veuillez vous assurer que vous avez géré le processus de migration de base de données approprié en cas de changement de schéma de base de données.
la source
Pour forcer l'utilisateur de l'application à se mettre à jour si une mise à jour est disponible sur le marché, vous devez d'abord vérifier la version de l'application sur le marché et la comparer avec la version de l'application sur l'appareil. S'ils sont différents, il peut s'agir d'une mise à jour disponible. Dans cet article, j'ai écrit le code pour obtenir la version actuelle du marché et la version actuelle sur l'appareil et les comparer ensemble. J'ai également montré comment afficher la boîte de dialogue de mise à jour et rediriger l'utilisateur vers la page de mise à jour. Veuillez visiter ce lien: https://stackoverflow.com/a/33925032/5475941 Assurez-vous simplement que dans la boîte de dialogue vous n'affichez que le bouton de mise à jour de l'utilisateur et ne lui montrez pas le bouton d'annulation. Dans ce cas, il sera obligé de se mettre à jour avant de pouvoir utiliser l'application.
la source
Ce qu'il faut absolument mentionner ici, c'est l' API de mises à jour in-app qui sera bientôt disponible .
la source
Il est judicieux d'utiliser la configuration à distance pour la version de l'application et de toujours vérifier l'activité de lancement si la version actuelle de l'application est la même que la version distante ou non si ce n'est pas forcer la mise à jour depuis l'App Store.
Logique simple codage heureux.
https://firebase.google.com/docs/remote-config/android
la source
Vous pouvez utiliser les mises à jour de l'application Play Core Library pour résoudre ce problème. Vous pouvez vérifier la disponibilité des mises à jour et les installer si elles sont disponibles de manière transparente.
Les mises à jour intégrées aux applications ne sont pas compatibles avec les applications qui utilisent des fichiers d'extension APK (fichiers .obb). Vous pouvez opter pour des téléchargements flexibles ou des mises à jour immédiates que Google Play se charge de télécharger et d'installer la mise à jour pour vous.
Référez-vous à cette réponse https://stackoverflow.com/a/58212818/7579041
la source
vous pouvez le faire en faisant une correspondance entre un numéro de version qui est conservé sur l'application dans une variable et de même la version actuelle de l'application est conservée côté serveur et chaque fois que l'utilisateur ouvre l'application, la première demande doit être envoyée pour vérifier que si elle trouve correspondant ne rien faire, laissez simplement l'utilisateur utiliser votre application, sinon déclenchez une intention sur le Google Playstore ou ouvrez une fenêtre d'affichage Web sur votre application (window.open (" https://play.google.com/store/apps/details?id= package_name ", '_system', 'location = yes');) et là, ils auront automatiquement le bouton demandant la mise à jour, c'est ce que google playstore fait pour vous si vous n'avez pas de mises à jour automatiques.
la source
Vous pouvez informer vos utilisateurs qu'une nouvelle version de l'application actuelle est disponible pour mise à jour. De plus, si cette condition est vraie, vous pouvez bloquer la connexion dans l'application.
Veuillez voir si cela vous fournit la solution.
la source
Eh bien, il pourrait y avoir de nombreuses solutions à ce problème, telles que la récupération du code de version de la page de l'application (page de l'application Google Play), etc.
Mais je vais vous montrer la solution ultime qui ne coûtera pas un centime et fonctionnera comme par magie.
panneau Config
Comparez-le avec le code de la version actuelle de l'application, que vous pouvez obtenir par le code suivant
}
Si le code de version récupéré est supérieur à la version actuelle, affichez un AlertDialog demandant de mettre à jour l'application. Sinon, l'application est déjà mise à jour.
Ainsi, chaque fois que vous déployez la nouvelle version, vous devez mettre ce nouveau code de version dans le panneau de configuration de Firebase Remote.
Vous pouvez lire l'intégralité du didacticiel sur la façon de forcer les utilisateurs à mettre à jour l'application à l'aide de Firebase Remote Config
la source
Google a publié des mises à jour intégrées à l'application pour la bibliothèque Play Core.
J'ai implémenté une bibliothèque légère pour implémenter facilement les mises à jour dans l'application. Vous pouvez trouver sur le lien suivant un exemple sur la façon de forcer l'utilisateur à effectuer la mise à jour.
https://github.com/dnKaratzas/android-inapp-update#forced-updates
la source