var push = (function(){ var appId = "GS82ZxpN8Mecpc53rsyu6aLLGK0W4CKi42J25DLB" var clientKey = "hQRtQfsgimYnX5PMivtcdXCG9eZhESeyTr0Rd8Sv" var push = { settings: {} } var parsePlugin push.init = function(){ parsePlugin = window.parsePlugin || { initialize: function(){} } parsePlugin.initialize(appId, clientKey, push.did_initialize, push.error) } push.did_initialize = function() { parsePlugin.registerCallback('onNotification', function(){ window.onNotification = push.got_push_notification }, push.error) push.settings.requested = localStorage.getItem("yoox.push_requested") == "true" push.settings.hub = localStorage.getItem("yoox.push_hub") == "true" push.settings.store = localStorage.getItem("yoox.push_store") == "true" if ( ! push.settings.requested ) { localStorage.setItem("yoox.push_requested", "true") push.subscribe("hub", function(){ push.subscribe("store") }) } } push.subscribe = function(channel, cb){ parsePlugin.subscribe(channel, function(){ push.settings[channel] = true localStorage.setItem("yoox.push_" + channel, "true") console.log("subscribed to", channel) cb && cb() }, push.error) } push.unsubscribe = function(channel, cb){ parsePlugin.unsubscribe(channel, function(){ push.settings[channel] = false localStorage.setItem("yoox.push_" + channel, "false") console.log("unsubscribed from", channel) cb && cb() }, push.error) } // parsePlugin.getInstallationId(function(id) { // var install_data = { // installation_id: id, // channels: ['SampleChannel'] // } // }, push.error) push.got_push_notification = function(push_obj) { // alert('We received this push notification: ' + JSON.stringify(push_obj)); app.blog.refresh() try { var is_hub = JSON.stringify(push_obj || {}).match(/hub/i) if (is_hub) { app.intro.$alert.show().html("[ HUB UPDATED ]") } else { app.intro.$alert.show().html("[ STORE UPDATED ]") } } catch (e) { app.intro.$alert.show().html("[ HUB UPDATED ]") } if (push_obj.receivedInForeground === false) { // TODO: route the user to the uri in push_obj } else { app.route("intro") } } push.error = function(e){ console.log("push error") } return push })()