cordova-plugin-nativeapp-updater
Version:
need to update native app
74 lines (69 loc) • 2.6 kB
JavaScript
var exec = require('cordova/exec');
function validateConfig(config, platform) {
if (!config)
config = {
type: "FLEXIBLE",
stallDays: 0,
};
const defaultsMixed = {
flexibleUpdateStalenessDays: 0,
immediateUpdateStalenessDays: 0,
};
if (config.type === "MIXED") config = { ...defaultsMixed, ...config };
else if (["FLEXIBLE", "IMMEDIATE"].includes(config.type))
config = { stallDays: 0, ...config };
else {
const error = new Error(
`Unknown type ${config.type} for platform ${platform} in config`
);
error.prototype.name = "UNKNOWN_TYPE_ERROR";
throw error;
}
// alert options only for ios
if (platform === "IOS") {
const alertTitle = "New Version";
const alertMessage =
"version __version__ of __appName__ is available on the AppStore.";
const alertUpdateButtonTitle = "Update";
const alertCancelButtonTitle = "Not Now";
config = {
alertTitle,
alertMessage,
alertCancelButtonTitle,
alertUpdateButtonTitle,
...config,
};
}
return config;
}
var NativeAppUpdater = {
getUpdateAndroid: function (successCallback, failureCallback) {
exec(successCallback, failureCallback, 'NativeAppUpdater', 'getUpdateAndroid');
},
setSnackbarOptions: function (successCallback, failureCallback, snackbarText, snackbarButton, snackbarButtonColor) {
snackbarText = (typeof (snackbarText) == 'undefined' || snackbarText.length == 0) ? 'An update has just been downloaded.' : snackbarText;
snackbarButton = (typeof (snackbarButton) == 'undefined' || snackbarButton.length == 0) ? 'RESTART' : snackbarButton;
snackbarButtonColor = (typeof (snackbarButtonColor) == 'undefined' || snackbarButtonColor.length == 0) ? '#76FF03' : snackbarButtonColor;
exec(successCallback, failureCallback, 'NativeAppUpdater', 'setSnackbarOptions', [
{strText: snackbarText, strButton: snackbarButton, strButtonColor: snackbarButtonColor}
]);
},
Flexible: function (successCallback, failureCallback) {
exec(successCallback, failureCallback, 'NativeAppUpdater', 'Flexible');
},
Immediate: function (successCallback, failureCallback) {
exec(successCallback, failureCallback, 'NativeAppUpdater', 'Immediate');
},
update:function (successCallback, failureCallback,config) {
config = config || {};
try {
config.ANDROID = validateConfig(config.ANDROID, "ANDROID");
config.IOS = validateConfig(config.IOS, "IOS");
config = { ANDROID: config.ANDROID, IOS: config.IOS };
} catch (err) {
errorCallback(err);
}
exec(successCallback, failureCallback, 'NativeAppUpdater', 'update',[config]);
}
};
module.exports = NativeAppUpdater;