介绍
这个插件是用于连接到设备的振动功能。
安装插件
cordova plugin add cordova-plugin-vibration
使用方法
这个插件定义了全局的对象包含着navigator.vibrate。虽然在全局范围内,但是他们需要在deviceready事件之后才可用
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
console.log(navigator.vibrate);
}
支持的平台Supported Platforms
· Amazon Fire OS
· Android
· BlackBerry 10
· Firefox OS
· iOS
· Windows Phone 7 and 8
· Windows (Windows Phone 8.1 devices only)
方法
navigator.vibrate,
navigator.notification.vibrate
navigator.notification.vibrateWithPattern
navigator.notification.cancelVibration
目前cordova 7.0+ 新版本
震动 (推荐)
这个函数有三个不同的功能,根据传递给它的参数。
标准振动Standard vibrate
为振动装置给定一个时间。
—时间:毫秒数给振动装置(数字)
navigator.vibrate(time)
or
navigator.vibrate([time])
平台特性
iOS 特性
时间:忽略指定的时间和振动在预先设定的时间。
navigator.vibrate(3000); // 3000 is ignored(3000被忽略)
Windows and Blackberry Quirks
时间:最大时间是5000ms(5S)和最小时间是1ms
navigator.vibrate(8000); // will be truncated to 5000(将变成5000)
震动模式Vibrate with a pattern (Android and Windows only)
该装置与一个给定的模式振动
navigator.vibrate(pattern);
pattern:序列的持续时间(毫秒数),打开或关闭振动器。(数字数组)
平台特性
Windows Phone 8 特性
振动(模式)依靠振动与默认的持续时间
Cancel vibration (not supported in iOS)
立即取消所有当前正在运行的振动。
navigator.vibrate(0)
or
navigator.vibrate([])
or
navigator.vibrate([0])
通过在0个参数,一个空数组,或者一个价值0个元素的数组将取消任何振动。
cordova 旧版本
*notification.vibrate (不推荐使用)
为振动装置给定一个时间。
navigator.notification.vibrate(time)
time:毫秒数给振动装置(数字)
平台特性
iOS 特性
time:忽略指定的时间和振动在预先设定的时间。
navigator.notification.vibrate();
navigator.notification.vibrate(2500); // 2500 is ignored 忽略
*notification.vibrateWithPattern (不推荐使用)
该装置与一个给定的模式振动。
navigator.notification.vibrateWithPattern(pattern, repeat)
pattern:序列的持续时间(毫秒数),打开或关闭振动器。(数字数组)
repeat:可选指标纳入图案阵列,开始重复(重复直至取消),或1不重复(默认)。(数字)
*notification.cancelVibration (不推荐使用)
立即取消所有当前正在运行的振动。
navigator.notification.cancelVibration()
示例
index.html:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;"> <meta name="format-detection" content="telephone=no"> <meta name="msapplication-tap-highlight" content="no"> <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width"> <title>Hello World</title> <style> .line { padding: 5px; } </style> </head> <body> <div class="app"> <div class="line"><button id = "vibrate">标准震动</button></div> <div class="line"><button id = "vibrationPattern">自定义震动</button></div> </div> <script type="text/javascript" src="cordova.js"></script> <script type="text/javascript" src="js/index.js"></script> </body> </html>
index.js:
var app = { initialize: function() { document.addEventListener('deviceready', this.onDeviceReady.bind(this), false); }, onDeviceReady: function() { this.receivedEvent(); }, $$: function(id) { return document.getElementById(id); }, // 震动插件 receivedEvent: function(){ this.$$("vibrate").addEventListener("click", vibration); this.$$("vibrationPattern").addEventListener("click", vibrationPattern); // 此参数用于设置的震动的持续时间,震动3秒。 function vibration() { var time = 3000; navigator.vibrate(time); console.log("触发了标准震动") } // 震动1秒,等待1秒,震动3秒,等待1秒,震动5秒。 function vibrationPattern() { var pattern = [1000, 1000, 3000, 1000, 5000]; navigator.vibrate(pattern); console.log("触发了自定义震动") } } }; app.initialize();
运行:
必须要使用真机测试!
点击“标准震动”,震动3秒钟。
点击“自定义震动”,震动1秒,等待1秒,震动3秒,等待1秒,震动5秒。