WebAPI : mode avion

Avec la sortie prochaine d'un OS Mobile basé sur Gecko (Firefox OS) et la création d'un marketplace ouvert pour Firefox utilisant HTML5/CSS3/Javascript, la création d'applications web visant des centaines de millions d'utilisateurs est désormais ouverte à tous.
mentalo
Salamandre
Messages : 21
Inscription : 07 sept. 2014, 18:49

WebAPI : mode avion

Message par mentalo » 22 févr. 2015, 17:40

Bonjour,

Je voudrais savoir s'il est possible (et comment) d'avoir accès au mode avion en développement (activation/désactivation). J'ai lu je ne sais plus où qu'il fallait que l'appli soit privileged, mais je ne trouve pas la trace de l'API à utiliser.

Merci pour votre aide.
Votre Navigateur : Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0

fabbox
Lézard à collerette
Messages : 357
Inscription : 16 oct. 2014, 20:20

Re: WebAPI : mode avion

Message par fabbox » 26 févr. 2015, 19:25

Bonjour,

je ne crois pas que ce soit possible avec une app privileged. Tu peux savoir si le téléphone est connecté (lien MDN) mais le mode avion ne semble pas disponible à l'heure actuelle. L'API qui semble donner des infos sur la connectivité avec une app privileged est probablement mobileNetwork listée ici mais elle ne semble dispo que pour les apps du système en fait.

Si c'est pour hacker gaia pour une app sytème perso, tu peux jeter un coup d'oeil à ce fichier airplane_mode_helper.js et à son utilisation dans l'apps système settings (par ce fichier je crois).

Bonne chance !
Votre Navigateur : Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0

Avatar de l’utilisateur
jarodd
Lézard à collerette
Messages : 267
Inscription : 15 déc. 2004, 17:32

Re: WebAPI : mode avion

Message par jarodd » 26 févr. 2015, 20:04

Merci, ça semble effectivement plus compliqué que prévu...
Votre Navigateur : Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:37.0) Gecko/20100101 Firefox/37.0
Ubuntu 16.04 (32 et 64 bits)
Firefox et Thunderbird : dernières versions stables utilisées

fabbox
Lézard à collerette
Messages : 357
Inscription : 16 oct. 2014, 20:20

Re: WebAPI : mode avion

Message par fabbox » 26 févr. 2015, 21:46

bon en fait j'ai trouvé, ce n'est trop complexe mais il faut avoir une app certified donc avoir ces lignes dans le manifest :

Code : Tout sélectionner

  "type": "certified",
  "permissions": {
    "settings":{ "access": "readwrite" }
  }
Cela te donne accès à l'API navigator.mozSettings.

J'ajoute deux boutons dans un fichier index.html (d'un template de base d'une app):

Code : Tout sélectionner

            <button id="active">Activer Mode Avion </button>
            <button id="desactive">Désactiver Mode Avion </button>
Pendant que ça mijote, je m'attaque au fichier javascript de l'app (j'ai mis l'intégralité de mon code et il y a surement plus esthétique comme manière d'écrire mais bon, je ne suis pas un dév pro ...):

Code : Tout sélectionner

(function() {
    'use strict';

    /*Ajout d'un écouteur sur le status du paramètre */
    /* voir https://developer.mozilla.org/en-US/docs/Web/API/Settings_API#Listening_for_change_in_settings */
    function handleAPM(event) {
        console.log(event.settingValue);
    }
    navigator.mozSettings.addObserver('airplaneMode.status', handleAPM);

    /*Activation/désactivation de Mode avion */
    /* https://developer.mozilla.org/en-US/docs/Web/API/Settings_API#Changing_settings  */
    var active_bt = document.getElementById("active"),
        desactive_bt = document.getElementById("desactive");

    function setAPM(value) {
        var lock = navigator.mozSettings.createLock(),
            result = lock.set({'airplaneMode.enabled': value });

        result.onsuccess = function () {
            console.log("APM = " + value);
        };

        result.onerror = function () {
            console.log("An error occure, the settings remain unchanged");
        };
    }

    function active(e){
        setAPM(true);
    }

    function desactive(e){
        setAPM(false);
    }

    /* Ajout d'un évènement sur chaque bouton (pour une démo explicite)*/
    active_bt.addEventListener('click', active, false);
    desactive_bt.addEventListener('click', desactive, false);
}
)();
voilà, j'enregistre le tout, je branche mon tél et en passant par WebIDE, ça semble marcher normalement (il faut toutefois que j'aille sur une autre app pour qu'il me demande mon code PIN à la sortie du mode avion).

Pour info, j'ai pu trouver la liste des paramètres accessibles via l'API mozSettings ici.

En espérant que ça puisse t'aider !

Alsaco
Gecko
Messages : 67
Inscription : 05 mars 2015, 22:08

Re: WebAPI : mode avion

Message par Alsaco » 01 juin 2015, 15:24

fabbox a écrit :bon en fait j'ai trouvé, ce n'est trop complexe mais il faut avoir une app certified donc avoir ces lignes dans le manifest :
Pour info, j'ai pu trouver la liste des paramètres accessibles via l'API mozSettings ici.
Celle ci est maintenant officiellement documentée ici :
https://developer.mozilla.org/en-US/Fir ... tings_list

fabbox
Lézard à collerette
Messages : 357
Inscription : 16 oct. 2014, 20:20

Re: WebAPI : mode avion

Message par fabbox » 01 juin 2015, 20:42

Héhé mais tout le truc c'est que la liste n'est pas à jour (ça bouge vite et je n'ai pas eu le courage d'ajouter les changements sur le mdn). Tu n'y trouvera pas le réglage pour le mode avion. C'est pour ça que je donnais la liste du code (qui devrait être maintenue à jour) :wink

Avatar de l’utilisateur
jarodd
Lézard à collerette
Messages : 267
Inscription : 15 déc. 2004, 17:32

Re: WebAPI : mode avion

Message par jarodd » 01 juin 2015, 21:13

Aaah merci je n'avais pas vu la réponse ! Bizaremment je n'ai pas reçu de notif' à l'époque, j'avais lâché l'affaire (mais j'en ai reçu une aujourd'hui, ouf).

Je vais regarder ça... quand je me remettrai le nez dans ce code, merci :wink:
Ubuntu 16.04 (32 et 64 bits)
Firefox et Thunderbird : dernières versions stables utilisées

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités