162 lines
No EOL
5.4 KiB
Markdown
162 lines
No EOL
5.4 KiB
Markdown
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)
|
||
|
||
## TODO, ISSUE e FEATURE ##
|
||
|
||
Usiamo l'[issue tracker](https://git.lattuga.net/hacklabbo/Ilovexm24/issues) 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" |