kiot-cordova-plugin-home-console
Version:
This plugin allows your Android app to download and install compressed updates without the Google Play Store.
85 lines (71 loc) • 2.6 kB
JavaScript
var exec = require('cordova/exec');
var Haptic = {
// Impact feedback types
IMPACT_LIGHT: 'light',
IMPACT_MEDIUM: 'medium',
IMPACT_HEAVY: 'heavy',
// Notification feedback types
NOTIFICATION_SUCCESS: 'success',
NOTIFICATION_WARNING: 'warning',
NOTIFICATION_ERROR: 'error',
// Selection feedback
SELECTION: 'selection',
/**
* Trigger impact haptic feedback
* @param {string} intensity - 'light', 'medium', or 'heavy'
* @param {function} success - Success callback
* @param {function} error - Error callback
*/
impact: function(intensity, success, error) {
intensity = intensity || this.IMPACT_MEDIUM;
exec(success, error, 'Haptic', 'impact', [intensity]);
},
/**
* Trigger notification haptic feedback
* @param {string} type - 'success', 'warning', or 'error'
* @param {function} success - Success callback
* @param {function} error - Error callback
*/
notification: function(type, success, error) {
type = type || this.NOTIFICATION_SUCCESS;
exec(success, error, 'Haptic', 'notification', [type]);
},
/**
* Trigger selection haptic feedback
* @param {function} success - Success callback
* @param {function} error - Error callback
*/
selection: function(success, error) {
exec(success, error, 'Haptic', 'selection', []);
},
/**
* Simple vibration (fallback for older devices)
* @param {number} duration - Duration in milliseconds
* @param {function} success - Success callback
* @param {function} error - Error callback
*/
vibrate: function(duration, success, error) {
duration = duration || 100;
exec(success, error, 'Haptic', 'vibrate', [duration]);
},
// Convenience methods that map to the same functions
impactLight: function(success, error) {
this.impact(this.IMPACT_LIGHT, success, error);
},
impactMedium: function(success, error) {
this.impact(this.IMPACT_MEDIUM, success, error);
},
impactHeavy: function(success, error) {
this.impact(this.IMPACT_HEAVY, success, error);
},
notificationSuccess: function(success, error) {
this.notification(this.NOTIFICATION_SUCCESS, success, error);
},
notificationWarning: function(success, error) {
this.notification(this.NOTIFICATION_WARNING, success, error);
},
notificationError: function(success, error) {
this.notification(this.NOTIFICATION_ERROR, success, error);
}
};
module.exports = Haptic;