JAVASCRIPT   114

push.js

Guest on 3rd August 2021 11:15:37 AM

  1. var _PUSHME_APP_CLIENT = "wordpress-plugin";
  2. var _PUSHME_APP_CLIENT_VERSION = "1.0.0";
  3.  
  4. var invictumPushMe = {
  5.         publicKey: "",
  6.         token: "",
  7.         initOnDocLoad: false,
  8.         permisionRequested: false,
  9.        
  10.         lastSavedToken: null,
  11.        
  12.         init: function(publicKey){
  13.                 invictumPushMe.publicKey = publicKey;
  14.                 pushmeMessaging.usePublicVapidKey(publicKey);
  15.                
  16.                 if(invictumPushMe.iOS()){
  17.                         jQuery(".click-for-push-info").hide();
  18.                 }else if(invictumPushMe.macOS()){
  19.                         jQuery(".click-for-push-info").hide();
  20.                 }else{
  21.                         invictumPushMe.lastSavedToken = invictumPushMe.storageGet("ipn_last_token");
  22.                         if(Notification.permission == "granted"){
  23.                                 invictumPushMe.requestPermission();
  24.                         }
  25.                 }
  26.         },
  27.        
  28.         iOS: function(){
  29.                 return /iPad|iPhone|iPod/.test(navigator.userAgent);
  30.         },
  31.        
  32.         macOS: function(){
  33.                 return navigator.platform.toUpperCase().indexOf('MAC')>=0;
  34.         },
  35.        
  36.         storageGet: function(key){
  37.                 key = "ipm" + key;
  38.                 try{
  39.                         return localStorage.getItem(key);
  40.                 }catch(e){}
  41.         },
  42.        
  43.         storageSet: function(key, val){
  44.                 key = "ipm" + key;
  45.                 try{
  46.                         return localStorage.setItem(key, val);
  47.                 }catch(e){}
  48.         },
  49.        
  50.         requestPermission: function()
  51.         {
  52.                 if(invictumPushMe.permisionRequested) return;
  53.                 if(invictumPushMe.iOS()) return;
  54.                
  55.                 // stats save ako je onload
  56.                 if(invictumPushMe.initOnDocLoad && invictumPushMe.storageGet("web_pn_allow_showed") != "showed"){
  57.                         invictumPushMe.doReq({}, "web_pn_allow_showed");
  58.                         invictumPushMe.storageSet("web_pn_allow_showed", "showed");
  59.                 }
  60.  
  61.                 invictumPushMe.permisionRequested = true;
  62.                
  63.                 pushmeMessaging.requestPermission().then(function(e) {
  64.                         console.log('Notification permission granted.');
  65.                         invictumPushMe.initEvents();
  66.                 }).catch(function(err) {
  67.                         console.log('Unable to get permission to notify.', err);
  68.                 });
  69.         },
  70.        
  71.         getToken: function()
  72.         {
  73.                 return invictumPushMe.token;
  74.         },
  75.        
  76.         setToken: function(token)
  77.         {
  78.                 invictumPushMe.token = token;
  79.                 invictumPushMe.storageSet("ipn_last_token", token);
  80.                 if(invictumPushMe.initOnDocLoad || aOperateri.subscribeToOperaterId != null){
  81.                         if(invictumPushMe.token != invictumPushMe.lastSavedToken) invictumPushMe.saveToken();
  82.                 }
  83.         },
  84.        
  85.         initEvents: function()
  86.         {
  87.                 pushmeMessaging.getToken().then(function(currentToken) {
  88.                         if (currentToken) {
  89.                                 invictumPushMe.setToken(currentToken);
  90.                         } else {
  91.                            console.log('No Instance ID token available. Request permission to generate one.', refreshedToken);
  92.                         }
  93.                 }).catch(function(err) {
  94.                          console.log('An error occurred while retrieving token. ', err);
  95.                 });
  96.  
  97.                 pushmeMessaging.onTokenRefresh(function() {
  98.                     pushmeMessaging.getToken().then(function(refreshedToken) {
  99.                       invictumPushMe.setToken(refreshedToken);
  100.                     }).catch(function(err) {
  101.                       console.log('Unable to retrieve refreshed token ', err);
  102.                     });
  103.                 });
  104.         },
  105.        
  106.         saveToken: function()
  107.         {
  108.                 var token = invictumPushMe.token;
  109.                 if(token && token != "" && token.length > 10){
  110.                         invictumPushMe.doReq({type:'subscribe_general'});
  111.                        
  112.                         // stats save ako je onload
  113.                         if(invictumPushMe.initOnDocLoad && invictumPushMe.storageGet("web_pn_allow_approved") != "approved"){
  114.                                 invictumPushMe.doReq({}, "web_pn_allow_approved");
  115.                                 invictumPushMe.storageSet("web_pn_allow_approved", "approved");
  116.                         }
  117.                 }
  118.         },
  119.        
  120.         tokenSaved: function()
  121.         {
  122.                 invictumPushMe.lastSavedToken = invictumPushMe.token;
  123.         },
  124.        
  125.         doReq: function(paramsAdd, mAct)
  126.         {
  127.                 var url = window.location.href
  128.                 var arr = url.split("/");
  129.                 var homeUrl = arr[0] + "//" + arr[2]
  130.                
  131.                 if(typeof(_PUSHME_PLUGIN_URL_V) != "undefined"){
  132.                         _PUSHME_APP_CLIENT_VERSION = _PUSHME_APP_CLIENT_VERSION_V;
  133.                 }
  134.                
  135.                 mAct = mAct ? mAct : "save";
  136.                 paramsAdd = paramsAdd ? paramsAdd : {};
  137.                 var params = {
  138.                         website: window.location.hostname,
  139.                         token: invictumPushMe.token,
  140.                         home_url: homeUrl,
  141.                         client: _PUSHME_APP_CLIENT,
  142.                         client_version: _PUSHME_APP_CLIENT_VERSION
  143.                 };
  144.                 if(paramsAdd){
  145.                         for(var k in paramsAdd){
  146.                                 params[k] = paramsAdd[k];
  147.                         }
  148.                 }
  149.                 params.old_token = invictumPushMe.lastSavedToken;
  150.  
  151.                 var rUrl = _PUSHME_PLUGIN_URL + "ax/pn-token.php?act=" + mAct
  152.                 jQuery.ajax({
  153.                            type: 'POST',
  154.                            url:  rUrl,
  155.                            data: params,
  156.                            success: function(responseObj, textStatus){
  157.                                    invictumPushMe.tokenSaved();
  158.                            },
  159.                            error: function (XMLHttpRequest, textStatus, errorThrown) {}
  160.                 });
  161.         },
  162.        
  163.        
  164.         pushNotificationDeniedShowError: function()
  165.         {
  166.                 jQuery("#operateri-pn-error-overlay").fadeIn();
  167.                 jQuery("#operateri-pn-error").fadeIn();
  168.         },
  169.  
  170.  
  171.         pushNotificationDeniedHideError: function()
  172.         {
  173.                 jQuery("#operateri-pn-error-overlay").fadeOut();
  174.                 jQuery("#operateri-pn-error").fadeOut();
  175.         }
  176.  
  177. };

Raw Paste


Login or Register to edit or fork this paste. It's free.