Ilovexm24/README.md

162 lines
5.4 KiB
Markdown
Raw Normal View History

2017-03-06 15:38:43 +01:00
App per xm, prende i contenuti dal sito e te li salva nel cellulare.
2017-03-25 13:08:49 +01:00
<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;" />
2017-03-06 16:05:10 +01:00
2017-03-16 18:35:26 +01:00
## Environment ##
2017-03-24 03:05:03 +01:00
### 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)
2017-03-16 18:35:26 +01:00
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).
2017-03-24 03:05:03 +01:00
### Appunti ###
http://www.digitigrafo.it/module/1249
2017-03-16 18:35:26 +01:00
## Build del progetto ##
2017-03-25 17:28:50 +01:00
### Android ###
2017-03-16 18:38:22 +01:00
`cordova platform rm android`
2017-03-06 15:38:43 +01:00
2017-03-16 18:38:22 +01:00
Per rimuovere la piattaforma vecchie di Android
2017-03-06 15:38:43 +01:00
2017-03-16 18:38:22 +01:00
`cordova platform add android`
2017-03-16 18:38:22 +01:00
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
2017-03-24 03:05:03 +01:00
```
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`
2017-03-16 18:38:22 +01:00
Per installare il plugin sulla rete che non viene installato in automatico
2017-03-16 18:35:26 +01:00
2017-03-16 18:38:22 +01:00
`cordova run android`
2017-03-16 18:38:22 +01:00
Per lanciare l'emulatore Android con l'applicazione.
Ovviamente si deve aver configurato il proprio environment correttamente.
2017-03-25 17:28:50 +01:00
### 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)
## TODO, ISSUE e FEATURE ##
2017-03-16 18:38:22 +01:00
Usiamo l'[issue tracker](https://git.lattuga.net/hacklabbo/Ilovexm24/issues) non il wiki.
2017-03-26 13:45:53 +02:00
## 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"