hooks | ||
res | ||
www | ||
.gitignore | ||
android-debug.apk | ||
config.xml | ||
README.md | ||
screenshot_eventi.png | ||
screenshot_menu.png | ||
screenshot_post.png |
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
TODO, ISSUE e FEATURE
Usiamo l'issue tracker non il wiki.
PARTE NOTIFICHE
NUOVO 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 LA 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"