iOS Haptics Test Aracı
iOS Safari haptic geri bildirimi (tek, onayla, hata desenleri) doğrudan tarayıcınızdan test edin. Android ve diğer desteklenen cihazlarda navigator.vibrate() öğesine geri döner.
Girdi
Cihaz desteği
Haptic destek kontrol ediliyor...
Nasıl çalışır
iOS Safari'de, bu gizli bir checkbox switch (Safari 17.4'te tanıtıldı) kullanır ve toggle edildiğinde haptic geri bildirim üretir. Android ve bunu destekleyen diğer cihazlarda, standart navigator.vibrate() API'si fallback olarak kullanılır.
Uyumluluk notu
Programlı iOS haptics, iOS 17.4 ile 26.4 arasında çalışır. Apple, iOS 26.5'te temel davranışı düzeltmiştir, bu nedenle JavaScript'ten haptics tetikleme en son iOS sürümünde artık çalışmayabilir.
Çıktı
Readme
Haptic geri bildirimi nedir?
Haptic geri bildirimi, bir cihazın bir eylemi onaylamak veya dikkat çekmek için ürettiği dokunsal bir yanıt — küçük bir titreşim veya dokunuş — dur. Akıllı telefonlarda, kısa ve hassas şekilde zamanlanmış darbeler oluşturan küçük bir motor (iPhone'larda Apple'ın "Taptic Engine"i) tarafından oluşturulur. Uzun bir vızıltılı titreşimin aksine, modern haptics keskin ve incelikli olup, bir alarm yerine fiziksel bir tıklama gibi hissettirilmek üzere tasarlanmıştır.
Native iOS uygulamalarında, geliştiriciler hafif bir dokunuş, "başarı" çift-dokunuş veya "hata" üçlü-dokunuş gibi farklı haptic desenlerini oynatmak için UIFeedbackGenerator API'sini kullanırlar. Uzun bir süre iOS Safari'deki web platformunun eşdeğeri yoktu — navigator.vibrate() iPhone'larda basitçe yoksayıldı. ios-haptics kütüphanesi, <input type="checkbox" switch> öğesinin (Safari 17.4'te tanıtılan) bir yan etkisinden yararlanır: bu anahtarı değiştirmek sistem haptic motorunu tetikler ve web sayfalarının JavaScript'ten kısa haptic desenlerini oynatmasına izin verir.
Araç açıklaması
iOS Haptics Tester, cihazınızın ve işletim sistemi sürümünüzün bunları destekleyip desteklemediğini doğrulamak için haptic geri bildirimi desenlerini doğrudan tarayıcınızdan tetiklemenizi sağlar. ios-haptics kütüphanesi tarafından sağlanan üç deseni — tek bir dokunuş, "onayla" (iki hızlı dokunuş) ve "hata" (üç hızlı dokunuş) — ortaya çıkarır ve ayrıca Android ve diğer cihazlar için geri dönüş olarak standart navigator.vibrate() API'sini çağıran bir düğme içerir.
Örnekler
| İşlem | iPhone'da beklenen his (iOS 17.4–26.4) | Android'de beklenen his |
|---|---|---|
| Tek haptic | Bir kısa, keskin dokunuş | Bir kısa titreşim (~200 ms) |
| Onayla (iki hızlı haptic) | Arka arkaya iki hızlı dokunuş | İki kısa titreşim |
| Hata (üç hızlı haptic) | Arka arkaya üç hızlı dokunuş | Üç kısa titreşim |
navigator.vibrate() test |
Çoğu iOS sürümünde hiçbir şey | Bir ~200 ms titreşim |
Özellikler
- Tek, onayla ve hata haptic desenleri için tek-dokunuş düğmeleri
- Geçerli cihazda haptic desteğinin otomatik algılanması
- Standart
navigator.vibrate()Web API'si için yerleşik geri dönüş testi - Tetiklenen her desen için zaman damgaları içeren canlı olay günlüğü
- iOS sürümü uyumluluğunu açıklayan net durum başlıkları
Kullanım durumları
- Web geliştiricileri,
ios-haptics'i kendi sitelerine veya PWA'larına entegre etmeden önce haptic geri bildirimin gerçek bir iPhone'da çalıştığını doğrulama - QA mühendisleri aynı desenlerin farklı cihazlarda, işletim sistemi sürümlerinde ve tarayıcılarda nasıl hissettiğini kontrol etme
- iOS tarzı "Taptic" geri bildirimi ile daha uzun Android
navigator.vibrate()darbesi arasındaki farkı deneyimlemek isteyen meraklı kullanıcılar
Nasıl çalışır
iOS Safari'de, araç dinamik olarak gizli bir <input type="checkbox" switch> oluşturur, onu değiştirir, ardından DOM'dan kaldırır. Bu native anahtarı değiştirme işlemi Taptic Engine'i tetikleyen şeydir — bunu doğrudan yapan genel bir Web API'si yoktur. "Onayla" ve "hata" desenleri basitçe anahtarı hızlı bir şekilde iki veya üç kez tekrarlar.
iOS anahtar numarasını desteklemeyen cihazlarda, kütüphane navigator.vibrate()'ye geri döner; bu, Android tarayıcılarında yaygın olarak desteklenir. Bu araçtaki "Test navigator.vibrate()" düğmesi, iki mekanizmayı karşılaştırabilmeniz için bu API'yi doğrudan çağırır.
Seçenekler açıklandı
- Tek haptic — Bir kısa dokunuş oynatır. Bir geçiş veya başarılı bir form alanı gibi küçük bir etkileşimi onaylamak için en iyi şekilde kullanılır.
- Onayla (iki hızlı haptic) — İki hızlı dokunuş oynatır. "Kaydedildi", "Gönderildi" veya diğer olumlu onaylamalar için idealdir.
- Hata (üç hızlı haptic) — Üç hızlı dokunuş oynatır. Doğrulama hatalarını veya yıkıcı başarısızlıkları işaret etmek için kullanın.
- Test navigator.vibrate() — Web Titreşim API'sini 200 ms süre ile çağırır. iOS olmayan cihaz desteğini onaylamak ve hissi iOS desenleriyle karşılaştırmak için yararlıdır.
- Günlüğü temizle — Olay günlüğünden tüm girişleri kaldırır.
Sınırlamalar
- Programlı iOS haptics yalnızca iOS 17.4 ile 26.4 arasında çalışır. Apple, iOS 26.5'te temel davranışı yamadı, bu nedenle bu desenleri JavaScript'ten çağırmak artık en yeni iOS sürümlerinde Taptic Engine'i tetiklemez. Gerçek bir
<input type="checkbox" switch>ile doğrudan kullanıcı etkileşimi hala çalışır. - iOS Safari, neredeyse tüm sürümlerde
navigator.vibrate()'yi yoksayar, bu nedenle geri dönüş düğmesi iPhone'larda sessiz görünecektir. - Masaüstü tarayıcılar haptic geri bildirimi üretemez; düğmeler çalışacak ancak hiçbir şey hissetmeyeceksiniz.
- Bazı Android tarayıcıları,
navigator.vibrate()'nin çalışması için sayfanın ön planda olmasını ve bir kullanıcı hareketi gerektirir. - Haptic geri bildirimi, cihazın sistem ayarlarında da devre dışı bırakılabilir (örn. Ayarlar → Sesler ve Haptics → Sistem Haptics iOS'ta).
İpuçları
- Bir gerçek cihazda test edin, simülatör veya emülatörde değil — sanal cihazlarda Taptic Engine yoktur.
- iPhone'da hiçbir şey olmazsa, Sistem Haptics'in Ayarlar'da etkinleştirildiğini ve Sessiz Modun eski iOS sürümlerinde bunları bastırmadığını kontrol edin.
- Onayla desenini dikkatli kullanın; hızlı haptics'i aşırı kullanmak çabucak sinir bozucu hale gelir.
- Haptics'i görsel geri bildirimi ile birleştirin — tek başına bir haptic, kullanıcıya durumu iletmek için nadiren yeterlidir.
SSS
iPhone'umda hiçbir şey hissetmiyorum, neden? Muhtemelen iOS 26.5 veya daha yenisinde olursunuz; burada Apple bu kütüphane tarafından kullanılan tekniği yamadı. iOS 17.4–26.4 çalıştıran bir cihazı deneyin veya Sistem Haptics'in Ayarlar'da etkinleştirildiğini kontrol edin.
navigator.vibrate() neden iPhone'da çalışmıyor?
Apple, Web Titreşim API'sini iOS Safari'de hiçbir zaman uygulamadı. Şu anda bir web sayfasından iOS'ta titreşimi tetiklemek için standartlara dayalı bir yol yoktur.
Bunu üretimde kullanmak güvenli midir? Kütüphane küçük ve yan etkisiz olsa da, belirli bir HTML öğesinin bir tuhaflığına dayandığı için, herhangi bir gelecek iOS güncellemesinde — iOS 26.5'te olduğu gibi — kırılabilir. Haptic geri bildirimi her zaman aşamalı bir geliştirme olarak değerlendirin, asla bir gereklilik olarak değil.
PWA veya "Ana Ekrana Ekle" uygulamasının içinde çalışır mı? Evet, desteklenen iOS sürümlerinde aynı teknik Safari'de olduğu gibi yüklü web uygulamalarında da çalışır.