HarmonyOS 如何区分手指(Finger)和手写笔(Pen)

在屏幕上滑动时需要区分是手指(Finger)和手写笔(Pen),使用sourceTool枚举类型,在手机上测试Finger和Pen都是undefined。

1.用sourceTool区分是否可行?

let fingerType:SourceTool=event.sourceTool;

打印日志显示:

SourceTool.Finger=undefined; 
SourceTool.Pen=undefined;

2.是不是在带笔的其他设备上如平板,才会显示Finger和Pen的值?

HarmonyOS
21h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
aquaa

问题一:可以用,只是要改下代码;首先获取到let fingerType: SourceTool = event.sourceTool;这里获取到的是枚举的"Value",是number类型的值;无法和SourceTool.Unknown做等号判断;可以通过以下代码查询到SourceTool所有的枚举key/Value。

const enumKeys = Object.keys(SourceTool).filter(key => isNaN(Number(key)));
const enumValues = enumKeys.map(key => SourceTool[key as keyof object]);
console.log('Keys: ', enumKeys);
console.log('Values: ', enumValues);

打印如下:

Keys: Unknown,FINGER,PEN,MOUSE,TOUCHPAD,JOYSTICK 
Values: 0,1,2,7,9,10

此时使用value去判断,所以修改代码如下:

if (fingerType === 1) {
  console.log("dianju_手指_down")
} else if (fingerType == 2) {
  console.log("dianju_手写笔_down")
} else if (fingerType == 0) {
  console.log("dianju_未知物_down")
} else if (fingerType == 7) {
  console.log("dianju_鼠标_down")
} else if (fingerType == 9) {
  console.log("dianju_触摸板_down")
} else if (fingerType == 10) {
  console.log("dianju_操纵手柄_down")
}
分享
微博
QQ
微信
回复
18h前
相关问题
HarmonyOS 区分手机,pad方法
52浏览 • 1回复 待解决
单击双击事件如何区分
533浏览 • 1回复 待解决
HarmonyOS 如何区分截屏录屏事件
108浏览 • 1回复 待解决
求告知如何接入手写服务
534浏览 • 1回复 待解决
HarmonyOS 怎么区分debugrelease
737浏览 • 1回复 待解决
关于平板触屏的开发
4651浏览 • 1回复 待解决
从HAP的拆包中,如何区分是HARHSP
2091浏览 • 1回复 待解决
元服务的api集应用api集 如何区分
1670浏览 • 1回复 待解决