UNPKG

cordova-plugin-nativeapp-updater

Version:

need to update native app

74 lines (69 loc) 2.6 kB
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;