乐于分享
好东西不私藏

鸿蒙Flutter插件精选:vibration_ohos

鸿蒙Flutter插件精选:vibration_ohos

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: [50010005002000]);

振动强度

// Android 8.0+ 支持振幅控制
Vibration.vibrate(duration: 1000, amplitude: 128);

振动预设

Vibration.vibrate(preset: VibrationPreset.alarm);
Vibration.vibrate(preset: VibrationPreset.notification);
Vibration.vibrate(preset: VibrationPreset.heartbeat);

更多预设:singleShortBuzzdoubleBuzztripleBuzzlongAlarmBuzzpulseWaveprogressiveBuzzrhythmicBuzzgentleReminderquickSuccessAlertzigZagAlertsoftPulseemergencyAlertheartbeatVibrationcountdownTimerAlertrapidTapFeedbackdramaticNotificationurgentBuzzWave

鸿蒙特有:自定义振动效果与属性

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

相关学习资料