MIF38 - Device API

Lionel Médini

MIF38 - Université Claude Bernard Lyon 1

licence Creative Commons BY-NC-SA

But de ce cours

  • APIs des différents types de capteurs
    • Batterie
    • Orientation & mouvement
    • Caméra & micro
    • etc.
  • …Et d'actionneurs
    • Vibration

Contenu de ce cours

  • Organisation des différentes spécifications
  • Liens vers ces specs
  • Liens vers des exemples de code

Remarques

  • Spécifications non stabilisées
    • L'état d'implémentation dépend des navigateurs
  • L'utilisation de certains types de capteurs peut présenter des problèmes de vie privée
    • Il peut être nécessaire de demander à l'utilisateur d'accepter une action
  • Certains navigateurs implémentent ces spécifications mais sont configurés pour les ignorer par défaut
    • ⇒ about:config

Utilisation

  • Tester la fonctionnalité, pas le navigateur
  • Être compatible avec différentes implémentations
    • préfixes de navigateurs
    • historiques des spécifications
    • spécificités des navigateurs
    • polyfills

Aide : Modernizr permet la détection des fonctionnalités et indique même des polyfills.

Capteurs

Generic Sensor API

  • Valable (normalement) pour tous les types de capteurs
  • Définit une interface Sensor
  • Fournit des primitives génériques
    • start / stop
    • state
    • reading
    • onChange / onStateChange / onError

Battery API

  • Utilité : détecter
    • le niveau de charge
    • le fait que la batterie est en charge ou non
    • le temps de chargement restant
    • le temps de déchargement restant
  • Exemple de code : sur MDN

DeviceOrientation events

  • Utilité :
    • identifier la direction vers laquelle pointe l'appareil
    • détecter un mouvement (accélération, vitesse de rotation)
  • Matériel utilisé : boussole
  • Exemple de code : sur MDN

Media capture and streams

Actionneurs

Pour l'instant, uniquement la vibration

Vibration API

Autres spécifications

  • En cours
    • Proximité
    • Luminosité
  • À venir
    • Température
    • Humidité
    • Pression
  • shelved (en pause)
    • Envoi de SMS
    • Accès aux contacts

Conclusion: un OS dans le navigateur

De nombreuses APIs