/** * @private * Interfaces with Cordova PushPlugin: https://github.com/phonegap-build/PushPlugin */ Ext.define('Ext.device.push.Cordova', { extend : 'Ext.device.push.Abstract', statics : { /** * @private * A collection of callback methods that can be globally called by the Cordova PushPlugin */ callbacks : {} }, setPushConfig : function (config) { var methodName = Ext.id(null, 'callback'); //Cordova's PushPlugin needs a static method to call when notifications are received Ext.device.push.Cordova.callbacks[methodName] = config.callbacks.received; return { "badge" : (config.callbacks.type === Ext.device.Push.BADGE) ? "true" : "false", "sound" : (config.callbacks.type === Ext.device.Push.SOUND) ? "true" : "false", "alert" : (config.callbacks.type === Ext.device.Push.ALERT) ? "true" : "false", "ecb" : 'Ext.device.push.Cordova.callbacks.' + methodName, "senderID" : config.senderID }; }, register : function () { var config = arguments[0]; config.callbacks = this.callParent(arguments); var pushConfig = this.setPushConfig(config), plugin = window.plugins.pushNotification; plugin.register( config.callbacks.success, config.callbacks.failure, pushConfig ); } });