温馨提示:本篇博客的详细代码已发布到 git : https://gitcode.com/nutpi/HarmonyosNext 可以下载运行哦!
// 反馈类型定义
interface FeedbackTypes {
visual: boolean; // 视觉反馈
haptic: boolean; // 触觉反馈
message: boolean; // 消息反馈
}
// 反馈场景
enum FeedbackScenario {
DOT_CONNECT, // 点连接
PATTERN_CORRECT, // 图案正确
PATTERN_WRONG, // 图案错误
PATTERN_RESET // 图案重置
}
关键点解析:
// 激活状态样式
.activeColor($r('app.color.pattern_lock_active_color'))
.selectedColor($r('app.color.pattern_lock_selected_color'))
// 圆环效果
.activateCircleStyle({
color: $r('app.color.pattern_lock_active_circle_color'),
radius: { value: 18, unit: LengthUnit.VP },
enableWaveEffect: true
})
关键点解析:
// 路径样式
.pathStrokeWidth(14)
.pathColor($r('app.color.pattern_lock_path_color'))
关键点解析:
startVibrator(vibratorCount?: number) {
try {
vibrator.startVibration({
type: 'preset',
effectId: 'haptic.clock.timer',
count: vibratorCount && vibratorCount > 1 ? vibratorCount : 1
}, {
usage: 'unknown'
});
} catch (err) {
// 错误处理
}
}
关键点解析:
// 点连接反馈
.onDotConnect(() => {
this.startVibrator();
})
// 错误反馈
this.startVibrator(2);
关键点解析:
// 更新提示信息
this.message = $r('app.string.pattern_lock_message_2');
// Toast提示
promptAction.showToast({
message: $r('app.string.pattern_lock_message_3'),
duration: 1000
})
关键点解析:
// 验证结果提示
this.patternLockController?.setChallengeResult(PatternLockChallengeResult.WRONG);
// 延时重置
setTimeout(() => {
this.patternLockController?.reset();
}, 1000);
关键点解析:
// 点连接即时反馈
.onDotConnect(() => {
this.startVibrator(); // 立即振动
})
关键点解析:
// 延时反馈处理
setTimeout(() => {
this.patternLockController?.reset();
this.message = $r('app.string.pattern_lock_message_1');
promptAction.showToast({
message: $r('app.string.pattern_lock_message_3'),
duration: 1000
})
}, 1000);
关键点解析:
// 振动优化
private throttleVibration(count: number): void {
if (Date.now() - this.lastVibrationTime > 100) {
this.startVibrator(count);
this.lastVibrationTime = Date.now();
}
}
关键点解析:
// 动画优化
.enableWaveEffect(true)
.renderMode(RenderMode.Hardware)
关键点解析:
本篇教程详细介绍了:
这些内容帮助你理解图案锁组件的交互反馈系统。下一篇将详细介绍最佳实践总结。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有