/** * @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 ); }});