Mis on haptilise tagasiside?

Haptilise tagasiside on taktiilne reaktsioon — väike vibratsioon või koputus —, mida seade tekitab toimingu kinnitamiseks või tähelepanu juhitamiseks. Nutitelefonides tekitab seda väike mootor (iPhoneis Apple'i "Taptic Engine"), mis loob lühikesi, täpselt ajastatud impulsse. Erinevalt pikast surisevast vibratsioonist on kaasaegne haptika terav ja peen, kujundatud tunduma nagu füüsiline klõps, mitte häire.

Omakeelsetes iOS-i rakendustes kasutavad arendajad UIFeedbackGenerator API-t erinevate haptiliste mustrite esitamiseks, nagu kerge koputus, "edu" kahekordne koputus või "viga" kolmekordne koputus. Pikka aega ei olnud iOS-i Safari veebiplattformil ekvivalenti — navigator.vibrate() lihtsalt ignoreeriti iPhoneis. ios-haptics teek kasutab <input type="checkbox" switch> elemendi kõrvalmõju (kasutusele võetud Safari 17.4-s): selle lüliti aktiveerimise käigus käivitatakse süsteemi haptilise mootori, võimaldades veebilehtedel esitada JavaScriptist lühikesi haptilisi mustreid.

Tööriista kirjeldus

iOS Haptics Tester võimaldab teil käivitada haptilise tagasiside mustreid otse brauserist, et kontrollida, kas teie seade ja operatsioonisüsteemi versioon neid toetavad. See pakub kolme mustrit, mida pakub ios-haptics teek — üks koputus, "kinnitus" (kaks kiiret koputust) ja "viga" (kolm kiiret koputust) — ja sisaldab ka nuppu, mis kutsub välja standardse navigator.vibrate() API-t Androidi ja muude seadmete tagasikäiguna.

Näited

Toiming Oodatav tunne iPhone'is (iOS 17.4–26.4) Oodatav tunne Androidis
Üks haptilise tagasiside Üks lühike, terav koputus Üks lühike vibratsioon (~200 ms)
Kinnitus (kaks kiiret) Kaks kiiret koputust järjest Kaks lühikest vibratsiooni
Viga (kolm kiiret) Kolm kiiret koputust järjest Kolm lühikest vibratsiooni
Testi navigator.vibrate() Midagi enamikul iOS-i versioonidel Üks ~200 ms vibratsioon

Funktsioonid

  • Ühe klõpsuga nupud ühe, kinnituse ja viga haptiliste mustrite jaoks
  • Automaatne haptilise tagasiside toe tuvastamine praegusel seadmel
  • Sisseehitatud tagasikäik standardse navigator.vibrate() Web API testi jaoks
  • Reaalajas sündmuste logi ajatemplitega iga käivitatud mustri jaoks
  • Selged olekubännerid, mis selgitavad iOS-i versiooni ühilduvust

Kasutamise juhtumid

  • Veebiarendajad, kes kontrollivad, kas haptilise tagasiside töötab pärisel iPhone'il enne ios-haptics integreerimist oma saidile või PWA-sse
  • QA-insenerid, kes kontrollivad, kuidas samad mustrid tunduvad erinevatel seadmetel, operatsioonisüsteemi versioonidel ja brauserites
  • Uudishimulikud kasutajad, kes soovivad kogeda erinevust iOS-stiilis "Taptic" tagasiside ja pikema Androidi navigator.vibrate() impulsi vahel

Kuidas see töötab

iOS Safari'is loob tööriist dünaamiliselt peidetud <input type="checkbox" switch>, aktiveerib selle ja eemaldab seejärel DOM-ist. Selle omakeelse lüliti aktiveerimise toiming on see, mis käivitab Taptic Engine'i — puudub avalik Web API, mis seda otse teeb. "Kinnitus" ja "viga" mustrid lihtsalt kordavad lüliti aktiveerimist kaks või kolm korda kiiresti järjest.

Seadmetel, mis ei toeta iOS-i lüliti trikki, langeb teek tagasi navigator.vibrate() kasutamisele, mida toetavad laialdaselt Androidi brauserid. "Testi navigator.vibrate()" nupp selles tööriistas kutsub seda API-t otse välja, et saaksite kahte mehhanismi võrrelda.

Valikute selgitus

  • Üks haptilise tagasiside — Esitab ühe lühikese koputuse. Parim kasutamine väikese interaktsiooni, nagu lüliti või eduka vormivälja kinnitamiseks.
  • Kinnitus (kaks kiiret haptilise tagasiside) — Esitab kaks kiiret koputust. Ideaalne "salvestatud", "saadetud" või muude positiivsete kinnituste jaoks.
  • Viga (kolm kiiret haptilise tagasiside) — Esitab kolm kiiret koputust. Kasutage valideerimisvigu või hävitavaid ebaõnnestumisi signaliseerimiseks.
  • Testi navigator.vibrate() — Kutsub Web Vibration API-t 200 ms kestusega. Kasulik mitte-iOS-seadmete toe kinnitamiseks ja tunnetuse võrdlemiseks iOS-i mustrite vastu.
  • Tühjenda logi — Eemaldab kõik kirjed sündmuste logist.

Piirangud

  • Programmiline iOS haptika töötab ainult iOS 17.4 kuni 26.4. Apple parandas aluseks olevat käitumist iOS 26.5-s, seega nende mustrite kutsumise JavaScriptist ei käivitata enam Taptic Engine'i uusimate iOS-i versioonide puhul. Otsene kasutaja suhtlemine pärise <input type="checkbox" switch> elemendiga töötab siiski.
  • iOS Safari ignoreerib navigator.vibrate() praktiliselt kõigil versioonidel, seega tagasikäigu nupp kuvatakse iPhone'is vaikne.
  • Töölaua brauserid ei saa tekitada haptilise tagasiside; nupud käivituvad, kuid te ei tunne midagi.
  • Mõned Androidi brauserid nõuavad, et leht oleks esiplaanil ja kasutaja žest enne navigator.vibrate() käivitamist.
  • Haptilise tagasiside võib ka keelata seadme süsteemisätetes (nt Sätted → Helid ja haptika → Süsteemi haptika iOS-is).

Näpunäited

  • Testige pärisel seadmel, mitte simulaatoris või emulaatoris — virtuaalsetel seadmetel puudub Taptic Engine.
  • Kui iPhone'is midagi ei juhtu, kontrollige, kas System Haptics on sätetes lubatud ja et Silent Mode ei summuta neid vanematel iOS-i versioonidel.
  • Kasutage Confirm mustrit säästlikult; kiire haptika üleliigne kasutamine muutub kiiresti tüütuks.
  • Kombineerige haptika visuaalse tagasisidega — haptika üksi on harva piisav kasutajale olekut edastama.

KKK

Miks ma iPhone'is midagi ei tunne? Te olete tõenäoliselt iOS 26.5 või uuemal versioonil, kus Apple parandas selle teegi kasutatavat tehnikat. Proovige seadet, kus töötab iOS 17.4–26.4, või kontrollige, kas System Haptics on sätetes lubatud.

Miks navigator.vibrate() iPhone'is ei tööta? Apple ei ole kunagi rakendanud Web Vibration API-t iOS Safari'sse. Praegu puudub standardipõhine viis vibratsiooni käivitamiseks iOS-is veebilehelt.

Kas see on ohutu kasutada tootmises? Teek on väike ja kõrvalmõjuvaba, kuid kuna see tugineb ühe konkreetse HTML-elemendi omapärale, võib see katkeda mis tahes tulevases iOS-i uuenduses — nagu see juba iOS 26.5-s juhtus. Käsitlege alati haptilise tagasiside progressiivse parandusena, mitte nõudena.

Kas see töötab PWA-s või "Lisa avalehele" rakenduses? Jah, toetatud iOS-i versioonidel töötab sama tehnika paigaldatud veebirakendustes täpselt nii nagu Safari'sse.