MAUI 中振动功能依赖 Microsoft.Maui.Devices.Vibration 类,支持短震(15ms)、长震(400ms)和自定义时长,但 iOS 仅支持两种模式,Android/HarmonyOS 更灵活;需手动配置平台权限,调用前应检查 IsSupported 和 IsVibrating 状态,并可结合 IHapticFeedback 实现精细化触感反馈。
MAUI 中实现振动效果主要依靠 Microsoft.Maui.Devices.Vibration 类,它提供跨平台的统一 API,无需手动处理 Android/iOS/HarmonyOS 权限细节(但需注意平台实际限制)。
MAUI 的振动功能简洁直接,支持短震、长震和自定义时长三种方式:
Vibration.Vibrate() 不传参或传空时长Vibration.Vibrate(TimeSpan.FromMilliseconds(400))
Vibration.Vibrate(TimeSpan.FromMilliseconds(200))
注意:iOS 上所有自定义时长都会被系统强制转为短震或长震两种模式之一,无法精确控制毫秒级;Android 和 HarmonyOS 支持更灵活的时长(但受系统策略限制,超1000ms可能被截断)。
MAUI 项目本身不自动申请振动权限,需手动配置:
A
ndroidManifest.xml 中添加
module.json5 中声明 "ohos.permission.VIBRATE",且需调用 vibrator.startVibration() 等原生能力(MAUI 当前暂未内置 HarmonyOS 振动支持,需通过 @kit.SensorServiceKit 插件桥接)避免运行时异常,建议每次振动前检查设备是否支持并已启用:
Vibration.IsSupported 判断当前平台是否支持振动Vibration.IsVibrating 避免重复触发(尤其在按钮快速连点场景)示例代码片段:
if (Vibration.IsSupported && !Vibration.IsVibrating)若需更精细的反馈(如键盘敲击、滑动确认),MAUI 还提供 IHapticFeedback 接口:
HapticFeedback.Default
HapticFeedbackType.Click、.HeavyClick、.Selection 等HapticFeedback.Default.Perform(HapticFeedbackType.Click)
该接口在 iOS 和 Android 上会映射为系统原生触感效果,比纯振动更自然,但不适用于所有场景(比如通知类提醒仍推荐用 Vibration)。
基本上就这些。MAUI 的振动功能开箱即用,关键在权限补全、平台差异识别和合理封装。