Vibration API - Jetzt wird's wild

Na, wenn das kein ansprechender Titel ist. Wir starten direkt richtig versaut durch und lernen unseren lieben Browser auf ganz neue Weise kennen. Hat die W3C also endlich all der einsamen Seelen da draußen gedacht und dem Browser ein paar zusätzliche Features geschenkt? Nun, jein. Wir beschäftigen uns heute tatsächlich mit einem neuen Feature, allerdings auf gänzlich unerotische Weise.

The Vibration API defines a means for web developers to programmatically provide tactile feedback in the form of vibration, heißt es im Beamtenenglisch des W3C. Was damit gemeint ist, ist das man das Endgerät jetzt auf Wunsch vibrieren lassen kann. Mit dieser neuen API ist es also möglich, Internetseiten endlich fühlbar zu machen.

Die Kurzbeschreibung in der aktuellen W3C Dokumentation geht aber noch weiter. The API is designed to tackle high-value use cases related to gaming, and is not meant to be used as a generic notification mechanism. Wir erfahren also auch gleich noch wofür sich die Damen und Herren W3C das Ganze ausgedacht haben, nämlich insbesondere für Spiele. Die Funktion erwartet im Übrigen einen einfachen Millisekungen-Wert oder ein Array von Millisekunden-Werten. Idealerweise sieht der Funktionsaufruf dann so aus:

// vibrate for 1 second
navigator.vibrate(1000);

// vibrate 100, 200 & 300 milli seconds
navigator.vibrate([100, 200, 300]);

Mit der zweiten Variante lassen sich Vibrationsfolgen auslösen, welche Jos Dirksen in seinem Beitrag "HTML5: Remotely vibrate a phone with morse code using web sockets and the vibrate API." dazu verwendet, um seinem Handy Morsezeichen beizubringen. Mit der Kompatibilität sieht es allerdings momentan noch recht mau aus. Zum Zeitpunkt des Codens unterstützte lediglich der aktuelle Firefox dieses Feature, weswegen die Zielgruppe unseres kleinen Browservibrators noch etwas eingeschränkt sein dürfte.

Darum habe ich hier einmal eine kleine Wrapper-Funktion gebastelt. Inklusive Fallback für ältere Browser (wie den Internet Explorer 9), die von der ganzen Vibrationsgeschichte noch nichts wissen. Wir begnügen uns hier erst einmal mit einem nervtötenden Alert, der uns zu Debugging-Zwecken schlicht unsere übergebenen Parameter ausgibt.

/**
 * Wrapper function for the new Vibrate API with fallback.
 *
 * Opera & internet explorer implementation is just a guess yet.
 * If you have further informations on their plans, please contact me.
 *
 * @see http://www.w3.org/TR/vibration/
 * @see https://bugs.webkit.org/show_bug.cgi?id=72010
 * @see https://developer.mozilla.org/en-US/docs/DOM/window.navigator.vibrate
 */
navigator.vibrate = (function(){
  return  navigator.vibrate       ||
          navigator.mozVibrate    ||
          navigator.webkitVibrate ||
          navigator.oVibrate      ||
          navigator.msVibrate     ||
          function(params) {
            vibrateFallback(params);
          };
})();

/**
 * This is used as a fallback function for older browsers.
 * You should change this to your project's needs.
 */
function vibrateFallback(params) {
  alert('Vibration called: ' + params);
}

Wie man unschwer erkennen kann, sind die IE- und Opera-Umsetzung bisher nur geraten. Wer nähere Infos dazu hat, immer her damit.

Noch keine Kommentare vorhanden.