Виходячи з гібридного додатка POV. Це приклад JavaScript, у мене в головному меню нижній колонтитул Доступне оновлення. Якщо доступне оновлення (тобто, номер моєї версії у файлі конфігурації менший, ніж отримана версія, відобразити нижній колонтитул) Це призведе до переходу користувача до магазину програм / відтворення, де користувач зможе натиснути кнопку оновлення.
Я також отримую нові дані (тобто примітки до випуску) і відображаю їх у модальному режимі при вході в систему, якщо це вперше у цій версії.
На пристрої Готово встановіть URL-адресу вашого магазину
if (device.platform == 'iOS')
storeURL = 'https:
else
storeURL = 'https:
Метод "Оновити доступне" можна запускати скільки завгодно часто. Мій запускається кожного разу, коли користувач переходить на головний екран.
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);
});
}
}
Зворотний дзвінок iOS: Apple має API, тому його дуже легко отримати
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);
}
}
Зворотний дзвінок Android: PlayStore вам потрібно очистити, як ви бачите, версію відносно легко захопити, і що нового я беру html замість тексту, оскільки таким чином я можу використовувати їх форматування (тобто нові рядки тощо)
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);
}
}
Логіка відкритого магазину є прямою, але для повноти
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')
}
Переконайтеся, що Play Store та App Store внесено до білого списку:
<access origin="https://itunes.apple.com"/>
<access origin="https://play.google.com"/>