Ilovexm24/README.md
2017-03-26 13:47:32 +02:00

163 lines
5.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

App per xm, prende i contenuti dal sito e te li salva nel cellulare.
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_post.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_eventi.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
<img src="https://git.lattuga.net/hacklabbo/Ilovexm24/raw/master/screenshot_menu.png" style="width:300px;border:solid 1px black;border-radius:20px;" />
## 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](https://dl.google.com/android/repository/tools_r25.2.3-linux.zip).
### 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](https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin) 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](https://github.com/phonegap/phonegap-plugin-push/blob/master/docs/INSTALLATION.md#ios-details)
## 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 sullurbanistica",
"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 sullurbanistica",
"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](https://git.lattuga.net/hacklabbo/Ilovexm24/issues) non il wiki.