summaryrefslogtreecommitdiff
path: root/StoneIsland/platforms/android/assets/www/js/lib/etc/push.js
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/platforms/android/assets/www/js/lib/etc/push.js')
-rwxr-xr-xStoneIsland/platforms/android/assets/www/js/lib/etc/push.js118
1 files changed, 86 insertions, 32 deletions
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/etc/push.js b/StoneIsland/platforms/android/assets/www/js/lib/etc/push.js
index 634ffe6d..da63fdd1 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/etc/push.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/etc/push.js
@@ -1,50 +1,103 @@
var push = (function(){
- var appId = "GS82ZxpN8Mecpc53rsyu6aLLGK0W4CKi42J25DLB"
- var clientKey = "hQRtQfsgimYnX5PMivtcdXCG9eZhESeyTr0Rd8Sv"
- var push = { settings: {} }
- var parsePlugin
+ var push = { settings: {}, disabled: false }
+ var pushPlugin
push.init = function(){
- parsePlugin = window.parsePlugin || { initialize: function(){} }
- parsePlugin.initialize(appId, clientKey, push.did_initialize, push.error)
+ if (device.platform !== "ios") {
+ push.disabled = true
+ return
+ }
+
+ pushPlugin = PushNotification.init({
+ ios: {
+ alert: true,
+ badge: true,
+ sound: false,
+ clearBadge: true,
+ },
+ })
+
+ console.log("push init")
+
+ PushNotification.hasPermission(push.did_initialize)
+ pushPlugin.on('registration', push.got_registration)
+ pushPlugin.on('notification', push.got_push_notification)
}
- push.did_initialize = function() {
- parsePlugin.registerCallback('onNotification', function(){
- window.onNotification = push.got_push_notification
- }, push.error)
+ push.did_initialize = function(data) {
+ if (! data.isEnabled) {
+ return
+ }
+ console.log("push did initialize")
+ var hub_status = localStorage.getItem("yoox.push_hub")
+ var store_status = localStorage.getItem("yoox.push_store")
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"
+ push.settings.hub = hub_status == "true"
+ push.settings.store = store_status == "true"
+
+ if (! hub_status || hub_status == "true") {
+ push.subscribe("hub")
+ }
+ if (! store_status || store_status == "true") {
+ push.subscribe("store")
+ }
+ }
+ push.got_registration = function(data){
+ var registrationId = data.registrationId
+ var oldRegistrationId = localStorage.getItem("yoox.registrationId")
+ console.log(registrationId, oldRegistrationId)
- if ( ! push.settings.requested ) {
- localStorage.setItem("yoox.push_requested", "true")
+ if (registrationId !== oldRegistrationId || ! push.settings.requested) {
+ localStorage.setItem("yoox.registrationId", registrationId)
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")
+ if (push.disabled) return
+ push.settings[channel] = true
+ localStorage.setItem("yoox.push_" + channel, "true")
+ var data = {
+ registrationId: localStorage.getItem("yoox.registrationId"),
+ channel: channel,
+ platform: device.platform,
+ }
+ pushPlugin.subscribe(channel, function(){
console.log("subscribed to", channel)
- cb && cb()
- }, push.error)
+ })
+ $.ajax({
+ method: "POST",
+ url: "https://stone.sup.land/_services/push/add",
+ data: data,
+ contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
+ success: function(){
+ console.log("subscribed to", channel)
+ cb && cb()
+ },
+ error: 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)
+ if (push.disabled) return
+ push.settings[channel] = false
+ localStorage.setItem("yoox.push_" + channel, "false")
+ var data = {
+ registrationId: localStorage.getItem("yoox.registrationId"),
+ channel: channel,
+ platform: device.platform,
+ }
+ $.ajax({
+ method: "POST",
+ url: "https://stone.sup.land/_services/push/remove",
+ data: data,
+ contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
+ success: function(){
+ console.log("unsubscribed from", channel)
+ cb && cb()
+ },
+ error: 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()
@@ -63,8 +116,9 @@ var push = (function(){
app.intro.$alert.show().html("[ HUB UPDATED ]")
}
- if (push_obj.receivedInForeground === false) {
+ if (push_obj.additionalData.foreground === false) {
// TODO: route the user to the uri in push_obj
+ pushPlugin.finish(function(){}, function(){})
}
else {
app.route("intro")