Guida sulla libreria Common

Questa pagina documenta tutti i metodi comuni presenti nella libreria PushipNotification.js, questo significa che i metodi qui presenti sono compatibili con tutte le piattaforme e andranno a produrre gli stessi risultati.

Tutti i metodi comuni si trovano all’interno del namespace Puship.Common

 

Registrazione del device

La registrazione del device non è comune fra tutte le piattaforme, infatti ognuna ha bisogno di parametri diversi per poter inizializzare il relativo servizio di push.
Seguite questa guida per la registrazione da CLI, oppure questa per la registrazione da phonegap online build.

 

Gestione Tags

I tag non sono altro che dei filtri associabili a un determinato device. In questo modo si riescono ad inviare le notifiche push selettivamente creando maggiori opportunità di interazione con l’applicazione e quindi con l’utente.
Ad esempio si possono creare dei tag per ogni segno zodiacale, per poi inviare l’oroscopo selettivamente, via notifica push, ad ogni determinato tag… forte no?

 

Aggiungere Tags

E’ possibile aggiungere dei tag al dispositivo attraverso i seguenti metodi:

AddTagFilter(tag)

AddTagFilter(tag, options)

Di seguito trovate un esempio:

Puship.Common.AddTagFilter(
	"Virgin", 
	{removePrevTag: true}
);

L’opzione removePrevTag consente di rimuovere i tag precedentemente inseriti.

 

Rimuovere Tags

E’ possibile rimuovere dei tag al dispositivo attraverso il seguente metodo:

RemoveTagFilter(tag)

Di seguito trovate un esempio:

Puship.Common.RemoveTagFilter("Virgin");


 

Pulisci Tags

Per poter rimuovere tutti i tag precedentemente associati è sufficiente chiamare il metodo CleanTagFilter:

CleanTagFilter()

Di seguito trovate un esempio:

Puship.Common.CleanTagFilter();


 

Ricezione delle notifiche push

La ricezione delle notifiche push a differenza di quanto si possa pensare è un’operazione molto semplice, sarà sufficiente, nell’onDeviceReady registrarsi all’evento PushReceived attraverso il seguente metodo

OnPushReceived(pushCallBack)

Di seguito trovate un esempio:

Puship.Common.OnPushReceived(function(event) {
    console.log("Push received");
    console.log("Message: " + event.notification.Alert);
    console.log("Sound: " + event.notification.Sound);
    console.log("Badge: " + event.notification.Badge);
    console.log("Param1: " + event.notification.Param1);
    ...
});

 

Lettura notifiche Push

La lettura delle notifiche push può essere effettuata sia in modalità semplice, sia in riferimento al device che ne sta facendo richiesta.

 

Lettura semplice

La lettura semplice consente di accedere alle tutte le notifiche basandosi solamente sul filtro utilizzato (se utilizzato), questo permette di accedere a notifiche push passate, inviate cioè prima che il device si registrasse per la ricezione.
Il seguente metodo ritorna le push in modalità semplice:

GetPushMessages(options)

Di seguito trovate un esempio:

Puship.Common.GetPushMessages(
	{
	//limit: 10, //max limit is 50 default is 20
	//offset: 100,
	//includeParams: true,
	byCurrentPosition: false,
	tag : "Libra",
	successCallback: function (regresult){
		console.log("GetPushMessages done");
		
		if (regresult.length > 0)
		{
			console.log("PushMessageId: " + regresult[0].PushMessageId);
			console.log("Param1: "+ regresult[0]["Params"].Param1); // visibile solo se includeParams è True
			console.log("Param2: "+ regresult[0]["Params"].Param2);
			navigator.notification.alert("Message 1 of "+regresult.length+": "+regresult[0].Message);
		}else{
			navigator.notification.alert("No message found");
		}
	},
	failCallback: function (regresult){
		navigator.notification.alert("error during GetPushMessages: "+ regresult);
	}
});

L’opzione limit consente di limitare il numero di push ricevute dalla funzione.
L’opzione offset consente di impostare un puntatore di partenza per la query delle notifiche.
L’opzione includeParams consente di ritornare anche i parametri assegnati alla notifica corrente.
L’opzione byCurrentPosition consente di filtrare per le notifiche push in base alla posizione corrente del device.
L’opzione tag consente di filtare le notifiche in base ai tag alle quali sono state associate.
L’opzione addDevicePush consente di aggiungere ai risultati dei precedenti filtri tutte le notifiche che il dispositivo ha ricevuto dal momento in cui è stato registrato.

 

Lettura per device

La ricezione per device è invece più restrittiva, essa ritorna solo le notifiche che sono state inviate specificatamente a questo determinato device.
Il seguente metodo ritorna le push in riferimento al device:

GetPushMessagesByDevice(options)

Di seguito trovate un esempio:

Puship.Common.GetPushMessagesByDevice(
	{
	//limit: 10, //max limit is 50 default is 20
	//offset: 100,
	//includeParams: true,
	successCallback: function (regresult){
		console.log("GetPushMessagesByDevice done");
		
		if (regresult.length > 0)
		{
			console.log("PushMessageId: " + regresult[0].PushMessageId);
			console.log("Param1: "+ regresult[0]["Params"].Param1); // visibile solo se includeParams è True
			console.log("Param2: "+ regresult[0]["Params"].Param2);
			navigator.notification.alert("Message 1 of "+regresult.length+": "+regresult[0].Message);
		}else{
			navigator.notification.alert("No message found");
		}
	},
	failCallback: function (regresult){
		navigator.notification.alert("error during GetPushMessagesByDevice: "+ regresult);
	}
});

L’opzione limit consente di limitare il numero di push ricevute dalla funzione.
L’opzione offset consente di impostare un puntatore di partenza per la query delle notifiche.
L’opzione includeParams consente di ritornare anche i parametri assegnati alla notifica corrente.

Negli esempi scaricabili per la registrazione delle varie piattaforme è possibile trovare anche il codice di esempio per la lettura delle notifiche.

 

Eliminazione di una notifica

Chiamando questa funzione sarà possibile eliminare una notifica dal server puship.

DeletePushMessage(PushMessageId)

DeletePushMessage(PushMessageId, options)

Di seguito trovate un esempio:

Puship.Common.DeletePushMessage("APKCbOd72fXKVUU_4be87030-2eda-11e4-8c21-0800200c9a66",
	{
	successCallback: function (regresult){
		navigator.notification.alert("Message deleted");
	},
	failCallback: function (regresult){
		navigator.notification.alert("Message delete error: "+ regresult);
	}
});

Negli esempi scaricabili per la registrazione delle varie piattaforme è possibile trovare anche il codice di esempio per l’eliminazione di una notifica.

 

Registrare una posizione

La registrazione delle posizioni può essere effettuata sia in modalità manuale, sia in modalità automatica.

 

Registrazione Manuale

Chiamando questa funzione sarà possibile registrare in qualsiasi momento la posizione del dispositivo. E’ buona norma aggiornare la posizione al momento dell’avvio dell’applicazione ma nulla vieta che essa sia effettuata più di frequente in modo da fornire una geolocalizzazione più accurata.

RegisterCurrentPosition()

RegisterCurrentPosition(options)

Di seguito trovate un esempio:

Puship.Common.RegisterCurrentPosition(
	{
	//callMinutes: 1,
	//enableHighAccuracy: true,
	//minimumAccuracy: 50, //Esclude le posizioni con accuratezza rilevata > 50 metri
	successCallback: function (regresult){
		navigator.notification.alert("Position registration done");
	},
	failCallback: function (regresult){
		navigator.notification.alert("Position registration error: "+ regresult);
	}
});

L’opzione callMinutes consente di impostare il tempo fra una chiamata e la successive al server puship, per ottimizzare l’utilizzo della banda. Non è possibile impostare un valore minore di 1 minuti.
L’opzione enableHighAccuracy consente di forzare l’utilizzo del GPS.
L’opzione minimumAccuracy consente di escludere le posizioni rilevate con una accuratezza rilevata minore di quella impostata. Se l’accuratezza rilevata è NULL la posizione non viene mai scartata

 

Registrazione Automatica

Chiamando questa funzione sarà possibile attivare la registrazione automatica della posizione del device. Questa funzionalità sfrutta la funzione WatchPosition di Phonegap.

WatchPosition()

WatchPosition(options)

Di seguito trovate un esempio:

var watchId = Puship.Common.WatchPosition({
	//callMinutes: 5,
	//enableHighAccuracy: true,
	//minimumAccuracy: 50, //Esclude le posizioni con accuratezza rilevata > 50 metri
});

L’opzione callMinutes consente di impostare il tempo fra una chiamata e la successive al server puship, per ottimizzare l’utilizzo della banda. Non è possibile impostare un valore minore di 5 minuti.
L’opzione enableHighAccuracy consente di forzare l’utilizzo del GPS.
L’opzione minimumAccuracy consente di escludere le posizioni rilevate con una accuratezza rilevata minore di quella impostata. Se l’accuratezza rilevata è NULL la posizione non viene mai scartata

Il parametro di ritorno watchId dovrà essere utilizzato per stoppare la registrazione automatica della posizione attraverso il metodo ClearWatch.

Attenzione: Alcune versioni dei sistemi operativi disabilitano by design la geolocalizzazione quando il device viene bloccato o si esce dall’applicazione.

 

Disabilitazione Registrazione Automatica

Chiamando questa funzione sarà possibile disattivare la registrazione automatica della posizione del device.

ClearWatch(watchId)

Di seguito trovate un esempio:

Puship.Common.ClearWatch(watchId);

L’opzione watchId contiene l’identificativo del whatcher creato.

 

Deregistrare un device

A volte può essere necessario deregistrare il dispositivo, per farlo è sufficiente uno dei seguenti metodi:

UnRegister()

UnRegister(callbackSuccess)

UnRegister(callbackSuccess, callbackFail)

Di seguito trovate un esempio:

Puship.Common.UnRegister( 
	function() {
		navigator.notification.alert("success unregistered");
	},
	function(err) {
		navigator.notification.alert("error: "+ err);
	},
);