진동 API ( Vibration API ) 
 이 문서 는 Vibration API ( W 3 C Recommendation 10 February 2015 ) 의 한국어 번역본 입니다 . 
 2015 년 2 월 10 일 W 3 C 권고 안 
 최신 작성자 문서 : 
 문서 발행 이후 보고 된 에러 나 이슈 를 errata 에서 확인 가능 합니다 . 
 이 스펙 문서 의 영문 버전 만 표준 버전 을 제공 합니다 . 표준 이 아닌 번역본 을 확인 할 수 도 있 습니다 . 
 이 스펙 문서 는 호스팅 디바이스 의 진동 메커니즘 접근 을 제공 하 는 API 를 정의 합니다 . 진동 은 물리 적 피드백 의 일종 입니다 . 
 이 문서 는 후보 권고 안 이후 변경 된 내용 이 없 습니다 . 
 이 문서 를 권고 안 으로 발행 함 으로써 , W 3 C 는 Web IDL 문서 의 권고 안 프로세스 진행 으로 인해 변경 이 있 더라도 이 문서 내 기능 정의 가 영향 을 받 지 않 을 거 라 기대 하 고 있 습니다 . 
 이 문서 는 진동 API 의 특징 및 범위 에 대한 그룹 의 합의 를 나타냅니다 . 그룹 이 이 간단 한 첫 번 째 버전 을 사용 하 여 구현 할 수 없 는 더 상세 한 유즈 케이스 를 알 고 있 음 에 주목 해야 합니다 . 목적 은 미래 버전 에서 해결 하 는 겁니다 . 
 이 문서 는 디바이스 API 워킹 그룹 에서 권고 안 으로 발행 한 문서 입니다 . 이 문서 에 관한 코멘트 를 남기 고 싶 다면 public - device - apis @ w 3 . org 으로 보내 주 시 길 바랍니다 . ( 구독 , 아카이브 ) . 모든 코멘트 를 환영 합니다 . 
 워킹 그룹 의 구현 보고서 를 확인 하 시 길 바랍니다 . 
 이 문서 는 2005 년 10 월 14 일 W 3 C 프로세스 문서 에 의해 관리 됩니다 . 
 2 . 적합 요구사항 
 4 . 진동 인터페이스 
 A . 감사 의 말 
 B . 참고 문서 
 B . 1 표준 참고 문서 
 B . 2 정보 참고 문서 
 이 API 는 간단 한 물리 적 피드백 만 을 요구 하 는 유스 케이스 에 접근 할 수 있 도록 설계 되 어 정의 되 어 있 습니다 . 유스 케이스 를 더 세밀 하 게 컨트롤 하 는 필요 는 이 스펙 문서 의 범위 에 포함 하 지 않 습니다 . 이 API 는 일반 적 인 알림 메커니즘 을 사용 하 는 걸 의미 하 지 는 않 습니다 . 몇 가지 유스 케이스 는 [ NOTIFICATIONS ] 스펙 문서 의 Notifications API 를 사용 해 핸들 링 합니다 . 여기 에 더 해 , 진동 여부 를 가능 하 게 하 는 건 이 스펙 문서 의 범위 에 포함 하 지 않 습니다 . 
 이 스펙 문서 안 에서 모든 다이어그램 , 예제 , 노트 및 표준 이 아니 라 명시 한 섹션 은 모두 표준 이 아닙니다 . 그 외 의 모든 내용 은 표준 입니다 . 
 MAY 와 MUST 키워드 는 [ RFC 2119 ] 에서 소개 하 는 대로 해석 합니다 . 
 이 스펙 문서 는 단일 프로덕트 에서 적용 할 수 있 는 적합 성 기준 을 정의 합니다 : 포함 된 인터페이스 를 구현 하 는 유저 에이전트 
 이 스펙 문서 는 Web IDL 의 스펙 과 용어 를 사용 합니다 . [ WEBIDL ] 구 현자 는 이 스펙 문서 에서 정의 하 는 API 를 ECMAScript 를 사용 해 구현 할 때 Web IDL 스펙 에서 정의 하 는 ECMAScript 바인딩 와 일치 하 는 방법 으로 구현 해야 합니다 . 
 browsing context 와 spin the event loop 는 [ HTML 5 ] 에서 정의 하 는 내용 을 따릅니다 . 
 vibrate ( ) 메 서 드 는 , 호출 할 때 , 반드시 진동 패턴 처리 알고리즘 을 동작 시켜야 합니다 . [ must ] 
 진동 패턴 처리 규칙 은 아래 알고리즘 을 따릅니다 . 
 vibrate ( ) 메 서드 의 첫 번 째 메 서드 인수 로 pattern 을 넣 습니다 . 
 밸 리 데이 션 및 정상 화 에 pattern 패 싱 결과 로 valid pattern 을 넣 습니다 . 
 만약 hidden 속성 [ PAGE - VISIBILITY ] 이 true 라면 , false 를 반환 하 고 아래 의 스텝 을 제거 합니다 . 
 오퍼레이팅 시스템 의 기능 에 밀접 하 게 접근 하 는 신뢰 가능 한 ( 혹은 면제 된 ) 어플리케이션 은 어플리케이션 이 전혀 보이 지 않 는 상태 에서 디바이스 에 진동 을 주 거나 , 이전 스텝 을 무시 할 수 있 습니다 . 
 valid pattern 과 함께 진동 을 수행 합니다 . 
 pattern 이 주어진 진동 패턴 의 밸리 데이 션 및 정상 화 는 아래 단계 로 동작 시킵니다 . 
 만약 pattern 이 리스트 라면 다음 단계 로 넘어갑니다 . 그 외 의 경우 아래 서브 스텝 을 실행 합니다 . 
 list 를 빈 목록 으로 초기 화 한 뒤 , list 에 pattern 을 넣 습니다 
 pattern 을 list 로 설정 합니다 . 
 max length 를 구현 체 에 의존 한 pattern 의 최대 값 으로 지정 합니다 . 
 만약 패턴 의 길이 가 이 API 구현 체 최대 길이 보다 크 다면 , 최대 길이 를 넘 어 무시 하 기 보다 는 , 같 은 효과 를 내부 적 으로 달성 하 기 위해 여러 짧 은 요청 으로 효율 적 으로 요청 을 나누 는 걸 고려 해야 합니다 . 여러 케이스 가 있 을 수 있 으며 , 최대 길이 를 초과 한 패턴 을 거부 하 는 게 적절 할 수 도 있 습니다 . 예 제 는 만약 길이 가 너무 길 어 유저 에게 효과 적 으로 서비스 어택 거부 를 생성 할 수 도 있 는 예제 입니다 . 웹 어플리케이션 은 패턴 사이 의 허용 할 수 있 는 갭 이나 몇몇 구현 체 에서 길이 가 너무 긴 경우 여러 개 의 요청 으로 나누 는 걸 허용 할 수 있 습니다 . 
 만약 pattern 의 길이 가 max length 보다 길 다면 , pattern 을 절단 하 고 , 첫 번 째 max length 엔트리 만 남겨 둡니다 . 
 pattern 의 길이 가 짝수 이 며 0 이 아니 라면 패턴 내 마지막 엔트리 는 효력 이 없 으며 구현 체가 이 포인트 에서 pattern 에서 지울 수 있 습니다 . 
 pattern 내 단일 진동 엔트리 를 위해 구현 체 의존 최대 길이 를 max - duration 에 지정 합니다 . 
 max duration 보다 큰 pattern 내 각 엔트리 값 을 위해 , 엔트리 값 을 max duration 으로 설정 합니다 . 
 pattern 을 반환 합니다 . 
 pattern 을 사용 하 는 perform vibration 은 , 아래 스텝 을 밟 습니다 : 
 구현 체 는 false 를 반환 하 고 이 스텝 을 끝낼 수 도 있 습니다 . 	 [ MAY ] 
 예 를 들 어 , 구현 체 에서 유저 가 기기 상 진동 을 허용 하 지 않 은 origin 에서 페이지 를 나타내 는 경우 취소 할 수 있 으며 , 구현 체 에서 제한 을 지난 요청 을 거부 하 고 디바이스 에서 진동 페이지 시간 총량 이 마무리 지어 질 수 도 있 습니다 . 
 perform vibration 알고리즘 의 다른 인 스턴스 가 이미 동작 하 고 있 는 경우 , 아래 서브 스텝 을 작동 합니다 . 
 존재 한다면 , perform vibration 알고리즘 의 다른 인 스턴스 를 취소 합니다 . 
 만약 pattern 이 빈 목록 이 라면 , 0 값 싱글 엔트리 를 포함 하 거나 , 디바이스 가 진동 을 사용 할 수 있 다면 , true 를 반환 하 고 이 스텝 을 제거 합니다 . 
 true 를 반환 하 고 , 이 스텝 을 비동기 적 으로 계속 해서 동작 합니다 . 
 pattern 내 각 time 은 , 아래 서브 스텝 대로 동작 합니다 . 
 만약 time 의 인덱스 가 짝수 라면 ( 첫 번 째 엔트리 인덱스 는 0 입니다 ) , time 밀리 세컨드 동안 기기 를 진동 시킵니다 . 
 그 외 의 경우 time 밀리 세컨드 동안 기다립니다 . 
 browsing context 내 Document 에서 visibilitychange 이벤트 [ PAGE - VISIBILITY ] 가 포착 되 었 을 때 , 유저 에이전트 는 반드시 이미 동작 하 고 있 는 진동 패턴 처리 를 취소 해야 합니다 . [ MUST ] 
 이 섹션 은 표준 에 준하 지 않 습니다 
 다음 예제 에서 디바이스 는 1000 밀리 세컨드 ( ms ) 동안 진동 합니다 : 
 아래 예제 에서 기기 패턴 진동 은 50 ms , 100 ms , 150 ms 에서 진동 하 게 됩니다 . 
 아래 예제 에서 는 기존 에 존재 하 는 진동 을 취소 시킵니다 
 B . 1 표준 참고 문서 
 B . 2 정보 참고 문서