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.js83
1 files changed, 54 insertions, 29 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 da63fdd1..082692ec 100755
--- a/StoneIsland/platforms/android/assets/www/js/lib/etc/push.js
+++ b/StoneIsland/platforms/android/assets/www/js/lib/etc/push.js
@@ -2,28 +2,38 @@ var push = (function(){
var push = { settings: {}, disabled: false }
var pushPlugin
push.init = function(){
- if (device.platform !== "ios") {
+ if (! ('device' in window) || (device.platform || "").toLowerCase() !== "ios") {
+ console.log("push disabled")
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)
+ window.FirebasePlugin.hasPermission(function(data){
+ push.did_initialize()
+ })
+
+ window.FirebasePlugin.getToken(function(token) {
+ push.got_registration(token);
+ }, function(error) {
+ console.error(error);
+ });
+
+ window.FirebasePlugin.onTokenRefresh(function(token) {
+ // save this server-side and use it to push notifications to this device
+ push.got_registration(token);
+ }, function(error) {
+ console.error(error);
+ });
+
+ // PushNotification.hasPermission(push.did_initialize)
}
push.did_initialize = function(data) {
+ console.log(data)
if (! data.isEnabled) {
+ console.log("push did not initialize")
+ window.FirebasePlugin.grantPermission()
return
}
console.log("push did initialize")
@@ -41,8 +51,8 @@ var push = (function(){
push.subscribe("store")
}
}
- push.got_registration = function(data){
- var registrationId = data.registrationId
+ push.got_registration = function(token){
+ var registrationId = token
var oldRegistrationId = localStorage.getItem("yoox.registrationId")
console.log(registrationId, oldRegistrationId)
@@ -62,12 +72,12 @@ var push = (function(){
channel: channel,
platform: device.platform,
}
- pushPlugin.subscribe(channel, function(){
+ window.FirebasePlugin.subscribe(channel, function(){
console.log("subscribed to", channel)
})
$.ajax({
method: "POST",
- url: "https://stone.sup.land/_services/push/add",
+ url: push.url('add'),
data: data,
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
success: function(){
@@ -88,40 +98,55 @@ var push = (function(){
}
$.ajax({
method: "POST",
- url: "https://stone.sup.land/_services/push/remove",
+ url: push.url('remove'),
data: data,
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
success: function(){
+ window.FirebasePlugin.unsubscribe(channel)
console.log("unsubscribed from", channel)
cb && cb()
},
error: push.error,
})
}
+ push.url = function(key){
+ return sdk.cms() + '/_services/push/' + key
+ }
push.got_push_notification = function(push_obj) {
- // alert('We received this push notification: ' + JSON.stringify(push_obj));
+ // console.log('We received this push notification: ' + JSON.stringify(push_obj));
+
app.blog.refresh()
+
+ push_obj.additionalData = push_obj.additionalData || {}
+
+ var is_hub = true
try {
- var is_hub = JSON.stringify(push_obj || {}).match(/hub/i)
- if (is_hub) {
- app.intro.$alert.show().html("[ HUB UPDATED ]")
- }
- else {
- auth.clear_cart()
- app.intro.$alert.show().html("[ STORE UPDATED ]")
- }
+ is_hub = JSON.stringify(push_obj || {}).match(/hub/i)
}
catch (e) {
+ }
+
+ if (is_hub) {
app.intro.$alert.show().html("[ HUB UPDATED ]")
}
+ else if (! push_obj.additionalData.url) {
+ auth.clear_cart()
+ app.intro.$alert.show().html("[ STORE UPDATED ]")
+ }
if (push_obj.additionalData.foreground === false) {
// TODO: route the user to the uri in push_obj
- pushPlugin.finish(function(){}, function(){})
+ // pushPlugin.finish(function(){}, function(){})
+ if (push_obj.additionalData.url) {
+ app.router.go(push_obj.additionalData.url)
+ }
+ }
+ else if (is_hub) {
+ app.router.go("hub")
}
else {
- app.route("intro")
+ app.router.go("intro")
}
}
push.error = function(e){