README.md 5.4 KB

App per xm, prende i contenuti dal sito e te li salva nel cellulare.

Environment

NodeJs

add gpg key using

curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -

add APT repo (verify/create) nodesource.list file in /etc/apt/sources.list.d with:

deb https://deb.nodesource.com/node_6.x jessie main
deb-src https://deb.nodesource.com/node_6.x jessie main

Alternative setup (it supports Kali, Debian, Mint, ...):

sudo curl -sL https://deb.nodesource.com/setup_6.x | bash -

(it supports Kali, Debian, Mint, ...)

Cleanup:

apt-get purge nodejs

Refresh:

apt-get update && apt-get install nodejs nom

ADK (android developer kit) e

Cordova CLI

Cordova si intalla con npm, packager di nodejs

npm install -g cordova

Android tool

ADK (android developer kit)

P.S. Con l'ultima versione di Android Studio è necessario scaricare a mano gli android tools.

Appunti

http://www.digitigrafo.it/module/1249

Build del progetto

Android

cordova platform rm android

Per rimuovere la piattaforma vecchie di Android

cordova platform add android

Per aggiungere la piattaforma nuova. Durante questa operaionze i seguenti plugin verranno auto installti:

  • cordova-plugin-compat
  • cordova-plugin-file
  • cordova-plugin-media
  • cordova-plugin-whitelist
  • cordova-sqlite-storage
  • phonegap-plugin-push

    cordova plugin add cordova-plugin-network-information \
    		cordova-plugin-x-socialsharing \
    		cordova-plugin-splashscreen
    

Forse non serve, ma l'howto di cordova-plugin-x-socialsharing dicono di farlo:

cordova prepare

Per installare il plugin sulla rete che non viene installato in automatico

cordova run android

Per lanciare l'emulatore Android con l'applicazione. Ovviamente si deve aver configurato il proprio environment correttamente.

iOS

Installando phonegap-plugin-push se si incontra questo errore:

Installing "phonegap-plugin-push" for ios
*Failed to install 'phonegap-plugin-push':undefined*
Error: CocoaPods was not found. Please install version 1.0.1 or greater from https://cocoapods.org/

Occore installare CocoaPods come descritto sulla documentazione del plugin

Notifiche

Payload di notifica ricevuto dall'app ###

Nel payload della notifica ho aggiunto nuove informazioni, assomiglia a questo:

{
    "title": "La proposta di legge regionale sull’urbanistica",
    "message": "Test Message!",
    "additionalData": {
        "force-start": "1",
        "topic_id": "1",
        "updated_at": "2017-03-26 10:27:02",
        "id": "5",
        "url": "http://www.ecn.org/xm24/evento/legge-reggionale-urbanistica/?instance_id=31510",
        "type": "event",
        "data":{"id":31510},
        "google.message_id": "0:1490524022974534%91acc10d261f455d",
        "created_at": "2017-03-26 10:27:02",
        "collapse_key": "test-title",
        "visibility": "1"
    }
}
  • "type": "notice" OR "alarm" or "event" indica il tipo di notifica, può essere utilizzato per avere comportamenti diversi dell'app a seconda che si tratti di un'informazione su un nuovo evento sul sito o di qualcosa di più importante
  • "url": "http://www.ecn.org/xm24/evento/legge-reggionale-urbanistica/?instance_id=31510" permette di aggiungere un'url al sito.
  • "data":{"id":31510} è un oggetto/array javascript dove aggiungere chiavi custom per il type di notifica. In questo caso mi sono passato l'id dell'evento nel link

Come inviare una notifica ###

dalla pagina https://xm.bus.pm/#!/alert è funzionante, la si può usare come sandbox, manca un editor per il campo "data" e la parte sms per il momento è disabilitata, ma la notifica dovrebbe arrivare a tutte le app.

da curl invece si può mandare "data"

curl -X POST -H "Content-Type: application/json" -H "Cache-Control: no-cache" -d '{"title":"TEST TITLE","message":"Test Message!","topic_id":1,"sms":false,"type":"event","url":"http://www.ecn.org/xm24/evento/legge-reggionale-urbanistica/?instance_id=31510","data":{"id":31510}}' "https://xm.bus.pm/api/a/c"

l'indirizzo del POST con curl è

"https://xm.bus.pm/api/a/c"

il payload mandato è

{
    "title": "La proposta di legge regionale sull’urbanistica",
    "message": "Test Message!",
    "topic_id": 1,
    "sms": false,
    "type": "event",
    "url": "http://www.ecn.org/xm24/evento/legge-reggionale-urbanistica/?instance_id=31510",
    "data": {
        "id": 31510
    }
}

gli header

-H "Content-Type: application/json" -H "Cache-Control: no-cache"

TODO, ISSUE e FEATURE

Usiamo l'issue tracker non il wiki.