너무, 장치가 실제로 어떻게 든 진동 할 경우 감지하는 것은 불가능 보인다 나는 비슷한 문제에 왔을 때 OS가 모바일 장치로하지 것 같으면 그냥 소리 대체를 사용 :
var navigatorTest = (function(ua){
return function(){
for(var i=0; i<arguments.length; ++i) {
if(ua.indexOf(arguments[i]) >= 0)
return true;
}
return false;
};
})(navigator.userAgent);
var bleep = ((
(navigatorTest("iPad", "iPod", "iPhone", "Android") || !navigatorTest("Macintosh", "Windows", "X11", "Linux"))
&& (navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate)
) || (
function(ctx){
return function(len){
var osc = ctx.createOscillator();
osc.connect(ctx.destination);
osc.start();
setTimeout(function(){
osc.stop();
}, len);
};
}
)(
window.AudioContext ? new AudioContext() : new webkitAudioContext()
)).bind(navigator, 300); // Vibration/bleep time
그것은 당신이 의미하는 것이 아니라 (기능 탐지가 아니라) 공정한 대체물을 제공합니다.
@ ZougenMoriver 결론적 인 답변이므로 관련 인용문을 사용하여 답변을 작성해야합니다. –