Procedente de una aplicación híbrida POV. Este es un ejemplo de javascript, tengo un pie de página de Actualización disponible en mi menú principal. Si hay una actualización disponible (es decir, mi número de versión dentro del archivo de configuración es menor que la versión recuperada, mostrar el pie de página) Esto dirigirá al usuario a la aplicación / tienda de juegos, donde el usuario puede hacer clic en el botón actualizar.
También obtengo los datos nuevos (es decir, notas de la versión) y los muestro en un modal al iniciar sesión si es la primera vez en esta versión.
En dispositivo listo, configure la URL de su tienda
if (device.platform == 'iOS')
storeURL = 'https:
else
storeURL = 'https:
El método Actualización disponible se puede ejecutar con la frecuencia que desee. El mío se ejecuta cada vez que el usuario navega a la pantalla de inicio.
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);
});
}
}
Devolución de llamada de iOS: Apple tiene una API, por lo que es muy fácil de obtener
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);
}
}
Devolución de llamada de Android: PlayStore tiene que raspar, como puede ver, la versión es relativamente fácil de agarrar y, lo que es nuevo, tomo el html en lugar del texto, ya que de esta manera puedo usar su formato (es decir, nuevas líneas, 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 lógica de la tienda abierta es sencilla, pero para completar
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')
}
Asegúrese de que Play Store y App Store estén en la lista blanca:
<access origin="https://itunes.apple.com"/>
<access origin="https://play.google.com"/>