API pri vibrado de PWA

Ni uzu la navigilon por skui vian aparaton

Brm, Brm!

Interagado kun la uzanto sur "malĉasta" nivelo povas multe plibonigi la sperton de uzanto de via programo. Tipe ni, kiel programistoj, devas limigi nin al ŝikaj kuraĝigoj, kiel paralaksaj efikoj aŭ 3D-bildigoj por transdoni pli realisman senton en niaj programoj. Sed ĉu vi sciis, ke Progresemaj Retejaj Programoj povas liveri multe pli? Hodiaŭ ni rigardos la haptikan flankon de interagoj inter la retejo kaj la uzanto.

Bruado en la (dev-) ĝangalo

Skribante, ne ĉiuj medioj subtenas la novan Vibration-API. Specife, ĉiu retumilo Chromium kaj Firefox povas esti uzata, dum ĉiu varianto de Safaro / WebKit ne havas subtenon. Noto: ĉiu retumilo en iOS uzas WebKit kiel motoron.

La uzado de la API mem estas tiel simpla kiel ĝi funkcias. Jen ekzemplo:

// All examples assume that we have 
// access to the 'window' and use Typescript.
// Specifically, we're using optional chaining
// for simplified handling of undefined if no
// API is available.

const vibrateOnceOnClick = () => {
  // A simple one-liner is all that's needed.
  // To use a single vibration, we simple 
  // provide an integer representing the ms
  // a single pulse should last.
  window.navigator?.vibrate?.(200);
}

const vibratePatternOnClick = () => {
  // For more than one puse, an array has to be
  // provided, again defining each pulse's lenght
  // in milliseconds.
  window.navigator?.vibrate?.([50, 200, 50, 200]);
}

Por pruvi, ke ĉi tiu kodo funkcias, simple frapu la kopian butonon en la dekstra dekstra angulo de la koda fragmento. Se via aparato subtenas ĝin, tiam oni komencu mildan vibradon por agnoski la kopi-al-tondejan agon.

Ni preskaŭ finis, ni nur rigardu la lastajn funkciojn de la API:

const cancelVibration = () => {
  // Quick and easy: call 'vibrate' with
  // a val of 0 and the current vibration
  // is stopped.
  window.navigator?.vibrate?.(0);
}

Kaj jen pri ĝi! Ne multe por kovri, sed apliki ĝuste, do ne tro en via programo kaj nur kiam ĝi aplikeblas, la vibrado-API estas vere bonega funkcio uzebla. Mi pensas, ke la plej bona uzokazo estas konfirmi aŭ nei haptike gravajn agojn, kiujn la uzanto faris, ekz. la kopio-ago por kodo ĉi-kaze aŭ konstanta forigo-ago en alia programo.

  • Tom