Provenant d'un PDV d'application hybride. Ceci est un exemple javascript, j'ai un pied de page Mise à jour disponible dans mon menu principal. Si une mise à jour est disponible (c'est-à-dire que mon numéro de version dans le fichier de configuration est inférieur à la version récupérée, affichez le pied de page) Cela dirigera alors l'utilisateur vers l'app / play store, où l'utilisateur peut alors cliquer sur le bouton de mise à jour.
Je reçois également les nouvelles données (c'est-à-dire les notes de publication) et les affiche dans un modal lors de la connexion si c'est la première fois sur cette version.
Sur l'appareil prêt, définissez l'URL de votre boutique
if (device.platform == 'iOS')
storeURL = 'https:
else
storeURL = 'https:
La méthode Update Available peut être exécutée aussi souvent que vous le souhaitez. Le mien est exécuté chaque fois que l'utilisateur accède à l'écran d'accueil.
function isUpdateAvailable() {
if (device.platform == 'iOS') {
$.ajax(storeURL, {
type: "GET",
cache: false,
dataType: 'json'
}).done(function (data) {
isUpdateAvailable_iOS(data.results[0]);
}).fail(function (jqXHR, textStatus, errorThrown) {
commsErrorHandler(jqXHR, textStatus, false);
});
} else {
$.ajax(storeURL, {
type: "GET",
cache: false
}).done(function (data) {
isUpdateAvailable_Android(data);
}).fail(function (jqXHR, textStatus, errorThrown) {
commsErrorHandler(jqXHR, textStatus, false);
});
}
}
Rappel iOS: Apple a une API, donc très facile à obtenir
function isUpdateAvailable_iOS (data) {
var storeVersion = data.version;
var releaseNotes = data.releaseNotes;
var _storeV = parseInt(storeVersion.replace(/\./g, ''));
var _appV = parseInt(appVersion.substring(1).replace(/\./g, ''));
$('#ft-main-menu-btn').off();
if (_storeV > _appV) {
$('#ft-main-menu-btn').text('Update Available');
$('#ft-main-menu-btn').click(function () {
openStore();
});
} else {
$('#ft-main-menu-btn').html(' ');
settings.updateReleaseNotes('v' + storeVersion, releaseNotes);
}
}
Rappel Android: PlayStore vous devez gratter, comme vous pouvez le voir, la version est relativement facile à saisir et les nouveautés, je prends le html au lieu du texte, car de cette façon, je peux utiliser leur mise en forme (c'est-à-dire de nouvelles lignes, etc.)
function isUpdateAvailable_Android(data) {
var html = $(data);
var storeVersion = html.find('div[itemprop=softwareVersion]').text().trim();
var releaseNotes = html.find('.whatsnew')[0].innerHTML;
var _storeV = parseInt(storeVersion.replace(/\./g, ''));
var _appV = parseInt(appVersion.substring(1).replace(/\./g, ''));
$('#ft-main-menu-btn').off();
if (_storeV > _appV) {
$('#ft-main-menu-btn').text('Update Available');
$('#ft-main-menu-btn').click(function () {
openStore();
});
} else {
$('#ft-main-menu-btn').html(' ');
settings.updateReleaseNotes('v' + storeVersion, releaseNotes);
}
}
La logique du magasin ouvert est simple, mais par souci d'exhaustivité
function openStore() {
var url = 'https://itunes.apple.com/us/app/appname/idUniqueID';
if (device.platform != 'iOS')
url = 'https://play.google.com/store/apps/details?id=appid'
window.open(url, '_system')
}
Assurez-vous que le Play Store et l'App Store ont été ajoutés à la liste blanche:
<access origin="https://itunes.apple.com"/>
<access origin="https://play.google.com"/>