双击轻捏,手写笔交互丝滑切换

在移动办公与数字创作日益普及的今天,手写笔已成为提升平板、手机等设备生产力的关键工具。然而,传统手写场景中,用户常因操作复杂(如频繁切换工具)、跨设备体验割裂等问题导致效率低下,而开发者则面临手势识别算法自研成本高、多端适配复杂等痛点。

为了提高操作的便捷性、效率和灵活性,减少用户在不同功能之间切换的时间和步骤,HarmonyOS SDK 手写笔服务(Pen Kit)新增了手写交互功能,支持第三方应用接入双击/轻捏功能。用户无需进入菜单或工具栏进行选择,只需简单操作即可切换工具,大大提高了工作效率。

应用场景

在教育领域,教师可通过双击切换板书工具或调出公式库,提升教学流畅性;办公场景中,用户通过双击撤销笔迹或轻捏调出快捷菜单,实现高效会议速记;创意设计中,双击切换笔刷、轻捏缩放画布等功能显著优化绘画与UI原型绘制效率;游戏场景中,轻敲笔身可提交指令或触发游戏内功能,增强沉浸感。

接入手写交互功能,对于需要接入支持双击/轻捏功能的手写笔的第三方应用,可以通过调用下面相应接口来监听手写笔双击/轻捏事件,从而触发自身应用内部回调,来执行指定操作。

  • 监听手写笔轻捏事件: 开发者可以通过调用stylusInteraction.on('squeeze', receiver)接口来监听手写笔的轻捏事件。一旦检测到该事件,开发者可以触发相应的回调函数,执行特定的操作。例如,在绘图应用中,轻捏可以用来调整画笔粗细或颜色。

  • 取消监听手写笔轻捏事件: 如果不再需要监听轻捏事件,开发者可以使用stylusInteraction.off('squeeze', receiver)来取消监听。这有助于优化应用性能,减少不必要的资源消耗。

  • 监听手写笔双击事件: 类似地,通过调用stylusInteraction.on('doubleTap', receiver)接口,开发者可以监听手写笔的双击事件。这一功能特别适用于快速启动某些快捷操作,如打开工具栏或切换模式。

  • 取消监听手写笔双击事件: 使用stylusInteraction.off('doubleTap', receiver)接口,开发者可以在不需要时取消对双击事件的监听,确保应用运行更加流畅高效。

开发步骤

手写笔轻捏事件
  1. 导入相关模块。

    import { stylusInteraction} from '@kit.Penkit';
    import { BusinessError } from '@kit.BasicServicesKit';

  2. 监听手写笔轻捏事件。

    try {
    stylusInteraction.on('squeeze', (event: stylusInteraction.SqueezeEvent) => {
    console.info(got squeeze event, time: ${event.timestamp});
    });
    } catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
    }

  3. 取消监听手写笔轻捏事件。

    try {
    stylusInteraction.off('squeeze', (event: stylusInteraction.SqueezeEvent) => {
    console.info(off squeeze event, time: ${event.timestamp});
    });
    } catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
    }

手写笔双击事件
  1. 导入相关模块。

    import { stylusInteraction} from '@kit.Penkit';
    import { BusinessError } from '@kit.BasicServicesKit';

  2. 监听手写笔双击事件。

    try {
    stylusInteraction.on('doubleTap', (event: stylusInteraction.DoubleTapEvent) => {
    console.info(got doubleTap event, time: ${event.timestamp});
    });
    } catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
    }

  3. 取消监听手写笔双击事件。

    try {
    stylusInteraction.off('doubleTap', (event: stylusInteraction.DoubleTapEvent) => {
    console.info(off doubleTap event, time: ${event.timestamp});
    });
    } catch (err) {
    console.error('errCode: ' + (err as BusinessError).code + ', errMessage: ' + (err as BusinessError).message);
    }

了解更多详情>>

访问手写笔服务官网

获取接入手写交互开发指导文档

相关推荐
灰灰勇闯IT3 小时前
【Flutter for OpenHarmony--Dart 入门日记】第1篇:变量声明详解——从 `var` 开始认识 Dart 的类型世界
flutter·交互
_OP_CHEN4 小时前
【前端开发之HTML】(三)HTML 常见标签(下):图文、链接与实战,解锁网页交互新姿势!
前端·html·交互·前端开发·网页开发·界面美化
晨非辰4 小时前
Linux文件操作实战:压缩/传输/计算10分钟速成,掌握核心命令组合与Shell内核交互秘籍
linux·运维·服务器·c++·人工智能·python·交互
AI_零食17 小时前
鸿蒙跨端框架 Flutter 学习 Day 6:异步编程:等待的艺术
学习·flutter·华为·交互·harmonyos·鸿蒙
大雷神1 天前
HarmonyOS智慧农业管理应用开发教程--高高种地---第5篇:地图首页与核心交互
华为·交互·harmonyos
方见华Richard2 天前
对话量子场论:语言如何产生认知粒子V0.3
人工智能·交互·学习方法·原型模式·空间计算
世人万千丶2 天前
鸿蒙跨端框架 Flutter 学习 iverpod 实战:超越 Provider 的响应式状态管理
学习·flutter·华为·交互·harmonyos·鸿蒙
Curvatureflight3 天前
前端性能优化指南:从加载到交互的每一毫秒
前端·性能优化·交互
方见华Richard4 天前
自指宇宙学:存在如何通过自我描述而实在化V0.2
人工智能·交互·原型模式·空间计算