电容 Haptics 插件
电容插件,用于提供撞击、通知、振动和自定义的电容模式等随机反馈.
特征
- 💥 影响: 有五种不同风格的触发撞击随机反馈,包括现代
Rigid财务报告和审定财务报表Soft样式. - 🔔 通知: 触发通知对成功、警告和出错事件的随机反馈.
- 🎯 选择: 用于拾取器风格交互的触发选择随机反馈 .
- 🎼 自定义图案:玩自定义的概率模式,每起事件强度和锐度(Core Haptics on iOS,震动效应于Android).
- 🤖 机器人杂乱: 执行语义Android随机反馈效果,尊重用户随机反馈设置.
- 📳 振动:以自定义持续时间来振动设备.
- 🔎 可用性检查: 请检查设备是否有随机反馈 .
- 🌐 网络支持:使用振动API为Web提供最佳支持.
- 🤝 兼容性: 与 摇摆, (中文(简体) ), 静态 财务报告和审定财务报表 数量 插件 .
- 📦 可可花和SPM:支持CocoaPods和Swift软件包管理器用于iOS.
- 🔁 最新数据:总是支持最新的Capacitor版本.
缺少一个功能? 刚刚 打开一个问题 我们看看!
使用大小写
Haptics插件一般用来让应用程序感觉更能反应和触觉,例如:
- 按钮和手势反馈:当用户界面元素相撞或拖动操作被按住时触发撞击反馈.
- 成功和错误反馈: 使用通知概率来通知一个任务成功、失败或产生警告.
- 拾取器和选择控制:在用户通过拾取器滚动时给出微妙的选择反馈.
- 游戏和丰富的互动:玩自定义的概率模式,每起事件强度和敏锐度用于浸入体验.
- 警报:用自定义的持续时间来振动设备以引起用户的注意.
兼容性
| 插件版本 | 电容版本 | 状态 |
|---|---|---|
| 0.2.x (中文(简体) ) | >=8.x.x | 积极支持 |
| 0.1.x (中文(简体) ) | >=8.x.x | 折旧 |
安装
你可以用我们的 AI 辅助设置 以安装插件. 添加数据 超级技能 至您的 AI 工具,使用以下命令:
npx skills add capawesome-team/skills --skill capacitor-plugins
然后使用下列提示:
Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capawesome/capacitor-haptics` plugin in my project.
如果你喜欢 手动设置,通过运行以下命令来安装插件,并遵循下面的平台特定指令:
npm install @capawesome/capacitor-haptics
npx cap sync
机器人
此插件已声明 android.permission.VIBRATE 因此不需要额外的配置.
iOS系统
此插件不需要额外的配置 .
配置
此插件不需要配置 .
使用量
以下例子显示如何检查是否有随机反馈、触发冲击和通知反馈、提供选择反馈、播放自定义随机模式、执行Android随机效应并震动设备.
检查是否有随机反馈
检查设备在使用其他方法之前是否支持随机反馈 :
import { Haptics } from '@capawesome/capacitor-haptics';
const isAvailable = async () => {
const { available } = await Haptics.isAvailable();
return available;
};
触发影响反馈
模拟物理撞击,例如当用户界面元素相撞或拖动操作被按住时. 现有五种不同的风格,包括现代风格 Rigid 财务报告和审定财务报表 Soft 样式 :
import { Haptics, ImpactStyle } from '@capawesome/capacitor-haptics';
const impact = async () => {
await Haptics.impact({ style: ImpactStyle.Medium });
};
触发通知反馈
告知某项任务或行动成功、失败或产生警告:
import { Haptics, NotificationType } from '@capawesome/capacitor-haptics';
const notification = async () => {
await Haptics.notification({ type: NotificationType.Success });
};
给选择反馈
在拾取者风格的互动中给出微妙的反馈. 打电话 selectionStart() 当互动开始, selectionChanged() 当选择发生变化时,以及 selectionEnd() 当交互结束时:
import { Haptics } from '@capawesome/capacitor-haptics';
const selection = async () => {
await Haptics.selectionStart();
await Haptics.selectionChanged();
await Haptics.selectionEnd();
};
播放自定义随机模式
玩自定义模式, 由每个事件的强度和锐度所构成的单个偶然事件。 在iOS上,模式使用 Core Haptics 播放;在Android上,它使用振动效应进行相近:
import { Haptics } from '@capawesome/capacitor-haptics';
const playPattern = async () => {
await Haptics.playPattern({
events: [
{ time: 0, intensity: 1, sharpness: 0.8 },
{ time: 200, intensity: 0.6, sharpness: 0.4 },
{ time: 400, intensity: 0.8, duration: 500 },
],
});
};
在iOS上,参数曲线会随时间变化整个图案的强度或锐度,例如,在最后的自带前提升一个连续的事件:
import { HapticParameter, Haptics } from '@capawesome/capacitor-haptics';
const playRampUp = async () => {
await Haptics.playPattern({
events: [
{ time: 0, intensity: 1, sharpness: 0.3, duration: 1000 },
{ time: 1000, intensity: 1, sharpness: 0.9 },
],
parameterCurves: [
{
parameter: HapticParameter.Intensity,
controlPoints: [
{ time: 0, value: 0.1 },
{ time: 1000, value: 1 },
],
},
],
});
};
播放Android组件
播放杂乱原生的成分,例如Android用于切换的双击. 仅在Android 12+上提供:
import {
AndroidHapticPrimitiveType,
Haptics,
} from '@capawesome/capacitor-haptics';
const playToggleOn = async () => {
await Haptics.playAndroidComposition({
primitives: [
{ type: AndroidHapticPrimitiveType.Tick, scale: 0.5 },
{ type: AndroidHapticPrimitiveType.Click, delay: 50 },
],
});
};
执行Android随机效应
执行语义化的Android随机反馈效果,该效果尊重用户的随机反馈设置. 仅在Android上可用:
import { AndroidHapticFeedbackType, Haptics } from '@capawesome/capacitor-haptics';
const performAndroidHapticFeedback = async () => {
await Haptics.performAndroidHapticFeedback({ type: AndroidHapticFeedbackType.Confirm });
};
振动设备
振动装置. 这个 duration 选项仅在Android和Web上可用:
import { Haptics } from '@capawesome/capacitor-haptics';
const vibrate = async () => {
await Haptics.vibrate({ duration: 500 });
};
API 密码
impact(...)isAvailable()notification(...)performAndroidHapticFeedback(...)playAndroidComposition(...)playPattern(...)selectionChanged()selectionEnd()selectionStart()vibrate(...)- 接口
- 数字
影响(...)
impact(options?: ImpactOptions | undefined) => Promise<void>
触发撞击随机反馈.
用于模拟物理撞击, 例如当用户 界面元素相撞或拖动操作相接.
在Android上,撞击风格被映射出最佳的振动效果.
| 参数 | 类型 |
|---|---|
options | ImpactOptions |
自: 0.1.0 (中文(简体) )
易读 ()
isAvailable() => Promise<IsAvailableResult>
检查设备是否有随机反馈 .
在Android上,这个检查设备是否有振动器. 在iOS上,此选项检查设备是否支持随机事件回放 . 在网络上,此检查是否支持振动 API .
回返情况: Promise<IsAvailableResult>
自: 0.1.0 (中文(简体) )
通知(...)
notification(options?: NotificationOptions | undefined) => Promise<void>
触发通知的随机反馈 .
用此来传达任务或动作成功, 失败 , 或发出警告.
在Android上,通知类型被映射为最佳振动 效应.
| 参数 | 类型 |
|---|---|
options | NotificationOptions |
自: 0.1.0 (中文(简体) )
执行AndroidHapticFeedback(...)
performAndroidHapticFeedback(options: PerformAndroidHapticFeedbackOptions) => Promise<void>
执行预定义的Android随机反馈效果.
与其他方法相比,这种方法不使用振动器 但Android视图系统的语义随机反馈常数. 这尊重用户的随机反馈设置 .
只能从Android上找到.
| 参数 | 类型 |
|---|---|
options | PerformAndroidHapticFeedbackOptions |
自: 0.1.0 (中文(简体) )
播放Android组合(...)
playAndroidComposition(options: PlayAndroidCompositionOptions) => Promise<void>
玩一种杂乱无章的原始人.
相对于 playPattern(...),此方法直接映射到
android振动器系统的原始成分,例如:
构建方向意识双击,Android用于切换.
构成尊重系统触摸反馈设置
Android 13+ (英语).
设备不支持的原始设备被播放为 Click。 。 。 .
仅在Android 12+上可用. 这需要一个带有概率的设备 原始支持. 否则,电话会拒绝提供.
| 参数 | 类型 |
|---|---|
options | PlayAndroidCompositionOptions |
自: 0.2.0 (中文(简体) )
播放 Pattern (...)
playPattern(options: PlayPatternOptions) => Promise<void>
播放由单个偶然事件组成的自定义随机模式 .
在 iOS 上,模式使用 Core Haptics 播放,并全力支持 强度和锐度。 这需要带有随机事件的设备 播放支持(例如带磁带引擎的iPhone). 否则,电话会拒绝提供.
在Android上,模式使用振动效应来播放. 强度是 只在振幅控制设备上受到尊重。 在Android 12+上,一个 瞬间事件模式仅作为单击的构成来播放 原始的 原始的 原始的 在Android 13+上,模式尊重系统触摸 反馈设置.
在网络上,该图案是使用振动API来进行相近的.
| 参数 | 类型 |
|---|---|
options | PlayPatternOptions |
自: 0.1.0 (中文(简体) )
选择更改( C)
selectionChanged() => Promise<void>
触发选择更改了随机反馈 .
后调用此方法 selectionStart() 当选择变更时.
在网络上,这个方法没有任何作用.
自: 0.1.0 (中文(简体) )
选择结束( E)
selectionEnd() => Promise<void>
结束一个选择会话.
用户完成选取交互时调用这种方法 .
在网络上,这个方法没有任何作用.
自: 0.1.0 (中文(简体) )
选择开始 ()
selectionStart() => Promise<void>
开始一个选择会话 .
当用户启动选择交互时, 调用此方法, for
实例,一个拾取者开始滚动。 它会准备随机的硬件
减少后一日期的延迟 selectionChanged() 打电话.
在网络上,这个方法没有任何作用.
自: 0.1.0 (中文(简体) )
震动(...)
vibrate(options?: VibrateOptions | undefined) => Promise<void>
振动装置.
| 参数 | 类型 |
|---|---|
options | VibrateOptions |
自: 0.1.0 (中文(简体) )
接口
影响选项
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
style | ImpactStyle | 撞击的风格. | ImpactStyle.Medium | 0.1.0 (中文(简体) ) |
易伤性结果
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
available | boolean | 设备上是否有随机反馈 . | 0.1.0 (中文(简体) ) |
通知选项
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
type | NotificationType | 通知的类型. | NotificationType.Success | 0.1.0 (中文(简体) ) |
执行AndroidHaptic Feedback 选项
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
type | AndroidHapticFeedbackType | Android随机回馈效应来进行. | 0.1.0 (中文(简体) ) |
PlayAndroid 组合选项
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
primitives | AndroidHapticPrimitive[] | 构成成分的原始人,按回放顺序排列. | 0.2.0 (中文(简体) ) |
AndroidHaptic 初级
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
delay | number | 在演奏这首原始曲子之前 等待的时间 以毫秒计 延迟开始于之前的原始成分完成后. | 0 | 0.2.0 (中文(简体) ) |
scale | number | 原始体的大小作为 0 财务报告和审定财务报表 1。 。 。 . | 1 | 0.2.0 (中文(简体) ) |
type | AndroidHapticPrimitiveType | 原始人的类型. | 0.2.0 (中文(简体) ) |
播放辅助选项
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
events | HapticEvent[] | 构成模式的偶然事件. | 0.1.0 (中文(简体) ) |
parameterCurves | HapticParameterCurve[] | 曲线会随着时间的推移改变整个图案的参数,例如,强度会上升. 仅在iOS上可用. | 0.2.0 (中文(简体) ) |
紧急事件
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
duration | number | 活动持续时间以毫秒计. 如果省略,则该事件为瞬时自带. | 0.1.0 (中文(简体) ) | |
intensity | number | 事件强度作为值 0 财务报告和审定财务报表 1。在Android上,强度只受到振幅控制的设备的尊重. | 0.1.0 (中文(简体) ) | |
sharpness | number | 事件的锐度作为 0 财务报告和审定财务报表 1。更低的数值导致更圆的、更软的反馈,而高值则导致更简洁、更准确的反馈。 仅在iOS上可用. | 0.5 | 0.1.0 (中文(简体) ) |
time | number | 事件发生的相对时间, 以毫秒计 . | 0.1.0 (中文(简体) ) |
HapticParemeter 调查
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
controlPoints | HapticParameterCurveControlPoint[] | 曲线的控制点,最多16个. 该值在相接的控制点之间线性地插入. | 0.2.0 (中文(简体) ) |
parameter | HapticParameter | 参数为曲线控制. | 0.2.0 (中文(简体) ) |
HapticParemeter 剖面控制点
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
time | number | 控制点相对于图案开始的时间,以毫秒计. | 0.2.0 (中文(简体) ) |
value | number | 此控制点的参数值 . | 0.2.0 (中文(简体) ) |
振动选项
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
duration | number | 振动持续时间以毫秒为单位. 仅在Android和Web上提供. | 300 | 0.1.0 (中文(简体) ) |
数字
影响样式
| 成员 | 数值 | 说明 | 自兹 |
|---|---|---|---|
Heavy | 'HEAVY' | 大而重的用户界面元素相撞. | 0.1.0 (中文(简体) ) |
Light | 'LIGHT' | 小而轻的用户界面元素相撞. | 0.1.0 (中文(简体) ) |
Medium | 'MEDIUM' | 中等大小用户界面元素相撞. | 0.1.0 (中文(简体) ) |
Rigid | 'RIGID' | 硬或不灵活的用户界面元素相撞. | 0.1.0 (中文(简体) ) |
Soft | 'SOFT' | 软或灵活的用户界面元素相撞. | 0.1.0 (中文(简体) ) |
通知类型
| 成员 | 数值 | 说明 | 自兹 |
|---|---|---|---|
Error | 'ERROR' | 任务或动作失败 . | 0.1.0 (中文(简体) ) |
Success | 'SUCCESS' | 一项任务或行动已成功完成. | 0.1.0 (中文(简体) ) |
Warning | 'WARNING' | 一项任务或行动产生了警告. | 0.1.0 (中文(简体) ) |
AndroidHaptic Feed BackType 软件
| 成员 | 数值 | 说明 | 自兹 |
|---|---|---|---|
ClockTick | 'CLOCK_TICK' | 用户按了1小时或1分钟. | 0.1.0 (中文(简体) ) |
Confirm | 'CONFIRM' | 用户行为的确认. 10岁及以上, ContextClick 改为执行. | 0.1.0 (中文(简体) ) |
ContextClick | 'CONTEXT_CLICK' | 用户对对象进行了上下文点击. | 0.1.0 (中文(简体) ) |
KeyboardTap | 'KEYBOARD_TAP' | 用户已按下虚拟或软件键盘键. | 0.1.0 (中文(简体) ) |
LongPress | 'LONG_PRESS' | 用户对一个对象进行了长时间的按压. | 0.1.0 (中文(简体) ) |
Reject | 'REJECT' | 用户动作的拒绝或失败. 10岁及以上, LongPress 改为执行. | 0.1.0 (中文(简体) ) |
ToggleOff | 'TOGGLE_OFF' | 用户已经将一个开关或按钮切换到关闭位置. 在Android 13岁及以上, ClockTick 改为执行. | 0.1.0 (中文(简体) ) |
ToggleOn | 'TOGGLE_ON' | 用户将一个开关或按钮切换到位置上. 在Android 13岁及以上, ClockTick 改为执行. | 0.1.0 (中文(简体) ) |
VirtualKey | 'VIRTUAL_KEY' | 用户已按下虚拟屏幕键 . | 0.1.0 (中文(简体) ) |
AndroidHaptic 原始类型
| 成员 | 数值 | 说明 | 自兹 |
|---|---|---|---|
Click | 'CLICK' | 一击一击. | 0.2.0 (中文(简体) ) |
LowTick | 'LOW_TICK' | 一个非常短的低频滴答. | 0.2.0 (中文(简体) ) |
QuickFall | 'QUICK_FALL' | 以重力迅速向下移动. | 0.2.0 (中文(简体) ) |
QuickRise | 'QUICK_RISE' | 快速向上逆着重力运动. | 0.2.0 (中文(简体) ) |
SlowRise | 'SLOW_RISE' | 缓慢地向上逆着重力运动. | 0.2.0 (中文(简体) ) |
Spin | 'SPIN' | 旋转的动力. | 0.2.0 (中文(简体) ) |
Thud | 'THUD' | 顺着重力向下移动 以相撞结束. | 0.2.0 (中文(简体) ) |
Tick | 'TICK' | 一个很短,轻而易举的虱子. | 0.2.0 (中文(简体) ) |
电荷平面
| 成员 | 数值 | 说明 | 自兹 |
|---|---|---|---|
Intensity | 'INTENSITY' | 乘以每个事件的强度. 控制点值范围从 0 改为 1。 。 。 . | 0.2.0 (中文(简体) ) |
Sharpness | 'SHARPNESS' | 抵消了每起事件的尖锐性. 控制点值范围从 -1 改为 1。 。 。 . | 0.2.0 (中文(简体) ) |
从 @capacitor/haptics
此插件是官员的倒置替换 @capacitor/haptics 有一些差异的插件 :
@capacitor/haptics | 波动 |
|---|---|
impact() (违约) ImpactStyle.Heavy(中文(简体) ) | impact() (违约) ImpactStyle.Medium(中文(简体) ) |
impact({ style }) (单位:千美元)Heavy, (中文(简体) ), Medium, (中文(简体) ), Light(中文(简体) ) | impact({ style }) (加上新的 Rigid 财务报告和审定财务报表 Soft 样式) |
notification({ type }) | notification({ type }) |
vibrate({ duration }) | vibrate({ duration }) |
selectionStart() | selectionStart() |
selectionChanged() | selectionChanged() |
selectionEnd() | selectionEnd() |
| —— 说 | isAvailable() |
| —— 说 | performAndroidHapticFeedback({ type }) |
| —— 说 | playPattern({ events }) |
请注意: 默认撞击样式从 ImpactStyle.Heavy 改为 ImpactStyle.Medium。如果依赖于旧的默认值,则通过 ImpactStyle.Heavy 当然.
平台行为
各平台的随机能力各不相同。 此插件将每种方法映射到最佳可用的平台 API :
| 方法 | 机器人 | iOS系统 | 网页 |
|---|---|---|---|
impact(...) | 预定义或调制的振动效应 | UIImpactFeedbackGenerator (所有5个样式) | 振动 API |
notification(...) | 微振动波形 | UINotificationFeedbackGenerator | 振动 API |
selection*() | 滴答振动效果 | UISelectionFeedbackGenerator | 无 -OP |
vibrate(...) | 有自定义持续时间的振动器 | 系统振动(固定持续时间) | 振动 API |
performAndroidHapticFeedback(...) | 波动反馈常数( 无振动器) | 不详 | 不详 |
playAndroidComposition(...) | 偶然原始人的组成 | 不详 | 不详 |
playPattern(...) | 振动效应(组合或波形) | 核心曲线(强度、锐度和参数曲线) | 振动 API |
自定义概率模式在iOS上最强,Core Haptics支持每个事件的强度和锐度. 在Android上,图案采用振动效应原始(Android 12+并配有被支持的硬件)或振幅控制的波形来进行相近. 在网络上,图案大致使用振动API,它只支持上下计时.
财务问题
此插件与其他类似插件有何不同?
它通过一个完全打入的API来涵盖各种随机反馈:有五个样式的影响,包括现代的Rigid和Soft,通知和选择反馈,通过Core Haptics在iOS上的每起事件强度和锐度的自定义模式,尊重用户系统设置的语义Android效果,以及可用性检查——在Android,iOS和最佳Web之间一致进行. 它与最新的Capacitor和OS版本相对应而积极维护. 如果您只需要简单的振动, 最小的设置是好的; 如果您想要富有, 平台- 意识的偶然性, 这个插件就是为此设计的 .
这个插件与正式的Capacitor Haptics插件有什么不同?
此插件是官员的倒置替换 @capacitor/haptics 具有额外特性的插件: a isAvailable() 方法、语义和机器人杂效 performAndroidHapticFeedback(...),通过 playPattern(...)和现代 Rigid 财务报告和审定财务报表 Soft 撞击样式。 注意默认撞击样式是 ImpactStyle.Medium 改为 ImpactStyle.Heavy,参见 从 @capacitor/haptics。 。 。 .
我需要配置任何权限吗?
不,插件已经声明 android.permission.VIBRATE 允许在自己的清单中,所以Android上不需要额外的配置. 在iOS和Web上,也不需要配置.
为什么我对我的装置不感到任何偶然的反馈?
首先,请使用 isAvailable() 用于检查是否有随机反馈的方法:在Android上,它检查设备是否有振动器,设备是否支持随机事件回放的iOS,以及网络上是否支持振动API。 还记住,在Android上,偶然事件的强度只在有振幅控制的设备上得到尊重 performAndroidHapticFeedback(...) 尊重用户的随机反馈设置 .
所有平台是否都支持自定义随机模式 ?
自定义模式在iOS上最强,其中Core Haptics支持每起事件的强度和锐度;这需要有一个带有概率事件回放支持的设备(例如有Taptic引擎的iPhone),否则呼叫拒绝为不可用. 在Android上,图案被大致使用振动效应原始或振幅控制波形来进行. 在网络上,图案大致使用振动API,它只支持上下计时.
两者有什么区别 vibrate 财务报告和审定财务报表 playPattern? 吗?
这个 vibrate(...) 方法触发一个自定义持续时间的单个振动,即持续时间只在Android和Web上被尊重(在iOS上,播放一个固定持续时间的系统振动). 这个 playPattern(...) 方法播放单个偶然事件的序列,每个事件都有其自身的时间,强度,锐度,以及持续时间.
我能用这个插件吗? 有Ionic、React、Vue或Angular?
是的,插件是框架不可知的。 它在任意网络框架的Capacitor app中工作,包括有Angular,React,或Vue的Ionic,以及平版JavaScript等项目.
相关插件
通讯
随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 《卡帕索克通讯》。 。 。 .
更改日志
见 变动情况。 。 。 .
许可证
见 自由主义。 。 。 .