首页 > 解决方案 > 从 navigator.vibrate 数组中获取值

问题描述

有没有办法从navigator.vibrate([]);数组中获取值?例如,我可以在这样的函数中计算总时间:

我尝试的是常规的点符号:navigator.vibrate[0]例如

function my_vibration_function() {
  navigator.vibrate(
    [
      500,
      250, 
      100, 
      150, 
      100, 
      150, 
      500, 
      250, 
      500 
    ]
  );
}

标签: javascriptarraysvibration

解决方案


本着顶级解决方案的精神::-)

class Vibrate {
    constructor(pattern) {
        this.pattern = pattern;
        this.startTime = Date.now();
        navigator.vibrate(pattern);
    }

    duration() {
        return this.pattern.reduce((t, x) => t + x);
    }

    remaining() {
        return Math.min(0, this.duration() - (Date.now() - this.startTime));
    }
}

let v = new Vibrate([
      500,
      250, 
      100, 
      150, 
      100, 
      150, 
      500, 
      250, 
      500 
    ]
  );

推荐阅读