bindbox-mini/utils/vibrate.js

53 lines
1.1 KiB
JavaScript

/**
* 震动工具函数
* 统一处理不同平台的震动API兼容性
*/
/**
* 短震动
* 微信小程序不支持 type 参数,会忽略该参数
* @param {Object} options - 配置项
* @param {string} options.type - 震动类型 'light' | 'medium' | 'heavy'(仅在部分平台有效)
*/
export function vibrateShort(options = {}) {
// #ifdef MP-WEIXIN
// 微信小程序不支持 type 参数,直接调用
uni.vibrateShort({
fail: (err) => {
console.warn('[vibrateShort] 震动失败:', err)
}
})
// #endif
// #ifdef H5 || APP-PLUS
// H5和App可能支持 type 参数
uni.vibrateShort({
...options,
fail: (err) => {
console.warn('[vibrateShort] 震动失败:', err)
}
})
// #endif
// #ifdef MP-ALIPAY || MP-BAIDU || MP-TOUTIAO
// 其他小程序平台,尝试传递参数
uni.vibrateShort({
...options,
fail: (err) => {
console.warn('[vibrateShort] 震动失败:', err)
}
})
// #endif
}
/**
* 长震动
*/
export function vibrateLong() {
uni.vibrateLong({
fail: (err) => {
console.warn('[vibrateLong] 震动失败:', err)
}
})
}