ニュアンスがすべて揃った公式仕様に参加したい人は、W3CのWebサイトでそれを行うことができますが、ここでは、これらすべての使用方法を簡単に確認し、ドキュメントに開示されていないいくつかのポイントを強調します。
当然のことながら、デスクトップコンピューター、ラップトップ、さらにはタブレットだけでも、必要に応じて振動することはできません。 また、システムユニットがガタガタして洗濯機のように部屋を動き回ったとしても、ユーザーはそれを評価しなかった可能性が高いため、後悔する価値はほとんどありません。 このようなデバイスの断片化の存在、および多くのブラウザーの一般的な利用不能性を考慮すると、振動制御がサポートされているかどうかを確認することから始めるのは理にかなっています。これは仕様にありません。 ただし、ナビゲーターにvibrate()メソッドがあるかどうかを確認するだけです。
if ("vibrate" in navigator) { // }
振動自体は、navigator.vibrateにミリ秒単位の持続時間を送信することで設定されます。
navigator.vibrate(1000);
ただし、すべてがそれほど退屈ではなく、配列全体を送信することができます。その値は、振動信号の持続時間とそれらの間の休止のシーケンスになります。
navigator.vibrate([1000, 500, 1000]);
ここでは、配列の偶数要素が振動信号の持続時間を決定し、奇数要素がそれらの間の休止時間を決定します(配列の要素のカウントはゼロから始まり、従来は偶数と考えられていました)。 つまり、上記のコードは、デバイスを最初に1秒間振動させ、次に0.5秒間待ってから再び1秒間振動させます。 2秒半ですべてが終了します。つまり、スクリプトによってプロセスを手動でループする必要があります。
バイブレーションプロセスはブロックされていません。つまり、デバイスが振動している間もコードは実行され続けます。
バイブレーションを停止する場合は、値0を渡す必要があります。
navigator.vibrate(0);
または、それが好きな場合:
navigator.vibrate([]);
ゼロ値送信は、以前に開始されたすべての振動をすぐにキャンセルします。
基本的に、これがWebページの振動を制御するAPIについて言えることのすべてです。 そして今、ブレインストーミングを行い、これをすべて使用できる理由について一緒に考えるという提案があります。 手始めに、次のアイデアがあります。
- たとえば、レース中や射撃中にデバイスを揺さぶるなど、Webゲームで振動を使用します。
- Webチャットに新しいメッセージが表示されるなど、ページで重要な変更が発生すると、バイブレーションが警告します。
- 音声信号がインターフェイスに存在する場合、たとえば、聴覚障害のあるユーザー(デバイス上の物理的な障害とミュートされた音の両方)にアクセシビリティを提供するための音声信号の複製。
- たとえば、サイトのボタンをクリックすると振動が押し寄せるなど、クールで小さなフリルをインターフェイスに追加するだけです。
- 迷惑で恐ろしいユーザー仕様。 たとえば、ページが読み込まれるとデバイスが激しく振動します。これにより、音楽が予期せずオンになった場合とほぼ同じマイナスが発生します。
そして今、正直に言うと、誰が、そして何がVibration APIの潜在的な能力を引っ掛けたのでしょうか?