vibration[1] 是一个跨平台的振动控制 Flutter 插件,支持 iOS、Android、Web 和 OpenHarmony。vibration_ohos 则是它在 OpenHarmony(鸿蒙)平台的实现适配。
安装
在 pubspec.yaml 中添加依赖:
dependencies:
vibration: any
vibration_ohos: any
鸿蒙权限配置
在项目的 module.json5 文件中添加振动权限:
"requestPermissions": [
{"name": "ohos.permission.VIBRATE"}
]
核心调用
基础振动
import 'package:vibration/vibration.dart';
// 检查设备是否支持振动
if (await Vibration.hasVibrator()) {
Vibration.vibrate();
}
指定时长
// 振动 1 秒
Vibration.vibrate(duration: 1000);
振动模式(交替振动)
// 等待500ms,振动1s,等待500ms,振动2s
Vibration.vibrate(pattern: [500, 1000, 500, 2000]);
振动强度
// Android 8.0+ 支持振幅控制
Vibration.vibrate(duration: 1000, amplitude: 128);
振动预设
Vibration.vibrate(preset: VibrationPreset.alarm);
Vibration.vibrate(preset: VibrationPreset.notification);
Vibration.vibrate(preset: VibrationPreset.heartbeat);
更多预设:singleShortBuzz、doubleBuzz、tripleBuzz、longAlarmBuzz、pulseWave、progressiveBuzz、rhythmicBuzz、gentleReminder、quickSuccessAlert、zigZagAlert、softPulse、emergencyAlert、heartbeatVibration、countdownTimerAlert、rapidTapFeedback、dramaticNotification、urgentBuzzWave。
鸿蒙特有:自定义振动效果与属性
import 'package:vibration_ohos/vibration_ohos.dart';
(VibrationPlatform.instance as VibrationOhos).vibrate(
vibrateEffect: const VibratePreset(count: 100),
vibrateAttribute: const VibrateAttribute(
usage: 'alarm',
),
);
停止振动
Vibration.cancel();
由我编著的《鸿蒙Flutter开发实战》图书已上架京东图书等各大商店,内容涵盖基础知识、鸿蒙化原理及适配、混合开发、插件开发、高级特性优化、性能分析、三方库适配、开发实战、鸿蒙PC等等,基于 Flutter 3.35 版本,是不可多得的 Flutter鸿蒙化适配工具书和实战案例,欢迎大家选购 🎉🎉🎉

引用链接
[1]vibration: https://pub-web.flutter-io.cn/packages/vibration
夜雨聆风