Download - Push Notification
Push NotificationPour smartphones AndroidLightning Talk
Ben Rabah Wajdi – Orange Developer Center19/02/2014 Tunis
2 Orange restrictedOrange presentation
Plan
section 1 Qu’est ce que le push notification?
section 2 Pourquoi opter pour le push notification?
section 3 Les méthodes pour avoir des mises à jours
section 4 Composantes
section 5 Prêt? Partez!
section 6 Tutorial pas à pas
section 7 Conclusion
3 Orange restrictedOrange presentation
Qu’est ce que le Push Notification ?
Gardez le contact avec vos utilisateurs, apportez leur de l’information ponctuelle et dynamisez l’utilisation de votre application… sans que celle-ci n’ait besoin d’être en cours d’exécution ! C’est ce que permettent les notifications push sur nos smartphones.
4 Orange restrictedOrange presentation
Pourquoi opter pour le push notification ?
5 Orange restrictedOrange presentation
Les méthodes pour avoir des mises à jours
Any news?
No!Any news?
No!
Any news?
No! New content!
Any news?
Yes! (News)
Push me your news!
News!
Transférer le plus tôt possible Conserver la batterie Minimiser le taux de données transférées aux
utilisateurs
6 Orange restrictedOrange presentation
Petite comparaison entre IOS et Android
7 Orange restricted
Quels sont les composantes pour mettre en place le push notification ?
8 Orange restricted
La confiance
9 Orange restricted
Oui mais pratiquement comment ça se passe ?
10 Orange restricted
Oui mais pratiquement comment ça se passe ?
11 Orange restricted
Oui mais pratiquement comment ça se passe ?
12 Orange restricted
Résumons
13 Orange restricted
Ready ? Go !
Maintenant mon serveur est enregistré avec Google et a au moins un smartphone pour lequel il peut envoyer des messages.
14 Orange restricted
C’est bien beau de parler mais pratiquement comment ça se passe ?
15 Orange restricted
Accès à Google Api console
• Aller à Google APIs Console page et noter le projectId .
16 Orange restricted
Activation de l’Api
17 Orange restricted
Api key
18 Orange restricted
Implémentation du serveur
• Installation de Xampp ou Wamp.• Accès à : http://localhost/phpmyadmin• Création d’une table d’utilisateurs :
CREATE TABLE IF NOT EXISTS `gcm_users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `gcm_regid` text, `name` varchar(50) NOT NULL, `email` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
• S’assurer que l’extension curl est activée (activée par défaut à Xampp)
19 Orange restricted
Implémentation du serveur
• Créez le répertoire gcm_server_php sous htdocs de xampp (ou www de wamp)
• Créez les fichiers suivants : config.php (pour configurer les accès , BD, mot de passe,
user…) db_connect.php (pour définir les opérations de base :
connexion, déconnexion…) db_functions.php (responsable de requêtes sur l’utilisateur) GCM.php (qui envoi les demandes de notifications au serveur) register.php (enregistre les smartphones) send_message.php (requête au serveur GCM puis envoi des
push notifications au smartphone) index.php ( une page qui affiche l’ensemble des smartphones
enregistrés et contrôle tout envoi)
20 Orange restricted
Préparation du projet Android
• Allez à SDK manager et installez Google Cloud Messaging for Android Library sous la section Extras.
• Après installation, allez au repertoire : Andoird_SDK_Folder\extras\google\gcm\gcm-client\dist
• Copier le fichier « gcm.jar » au répertoire lib de votre projet , puis incluez ce dernier dans le build path.
21 Orange restricted
Mise en place du projet Android
• Inclure les permissions nécessaires dans le manifest.• Définir un broadcast receiver responsable d’envoi, réception (des
push) et d’enregistrement des smartphones.• Définir un service qui va contrôler notre broadcast.• Définir la classe AlertDialogManager.java qui va afficher une alerte
dialog dans le cas de succès ou d’échec de connexion.• Définir la classe ConnectionDetector.java qui a pour rôle de
connaitre l’état de la connexion internet.• Définir la classe CommonUtilities.java qui contient la
configuration de GCM et l’url de notre serveur.• SERVER_URL = ici on travaille en localhost donc notre IP• SENDER_ID = l’id du projet donné auparavant par Google.
22 Orange restricted
Mise en place du projet Android
• Définir la classe ServerUtilities.java : abonne/désabonne un smartphone, et responsable de l’envoi de données au serveur aussi .
• Définir la classe GCMIntentService.java : joue le rôle d’écouteur suite aux différentes actions (enregistrement d’un smartphone, réception de message …)
• Définir la classe RegisterActivity.java responsable de l’enregistrement des smartphones.
• Définir l’activité MainActivity.java qui va représenter notre point de départ et va notifier le serveur de l’abonnement d’un nouveau smartphone.
23 Orange restricted
Mise en place du projet Android
• Définir le layout activity_register.xml permettant d’abonner un smartphone.
• Définir le fichier string.xml permettant de stocker les informations nécessaires aux messages d’erreurs etc. … (pattern utilisé pour ce faire)
• J’ai ajouté d’autres classes comme WakeLocker.java qui ne laisse pas le smartphone entrer en mode veille.
24 Orange restricted
Démonstration
Aussi disponible ici : https://www.dropbox.com/s/eto4dkgyqzy4d5l/Push%20notification.mp4
25 Orange restricted
Conclusion : Limites
Messages de très petite longueur. Pas de garantie si le message est
bien sécurisé. Envoi :
Non garanti Les utilisateurs peuvent se désabonner. Les utilisateurs peuvent désactiver les
notifications afin de bien gérer la batterie.
Merci
Orange, the Orange mark and any other Orange product or service names referred to in this material are trade marks of Orange Brand Services Limited.
Orange restricted.