在 React Native 中,有没有办法识别手写笔(笔)与触摸(手指)事件?

Nad*_*ine 9 uitouch ios react-native react-native-ios

我正在开发 RN 应用程序,该应用程序有一个屏幕,其中包含“可绘制”区域的列表。所以这个屏幕应该是可滚动和可绘制的。

我想做的 - 是找到一种解决方案来区分来自手指(这些将用于滚动和禁止绘图)和通过 Apple Pencil 的手写笔(这些将用于绘图和禁止滚动)的触摸事件。

在 Gesture Responder 和 PanResponder 中,每次移动都会传递事件。每个事件(以及 nativeEvent 都包含type属性。但是,在模拟器和设备中它对我来说始终为空。

有没有办法将移动事件识别为手指与手写笔?

Kun*_*wla 0

我们对我们的一个项目有类似的要求,我们所做的就是使用一个Pressable组件,将 handlePress 函数作为 prop 传递给该组件。该函数接受GestureResponderEventas 事件回调参数。通过使用最近添加的event.nativeEvent.altitudeAngle 属性,我们能够检测 Apple Pencil 触摸。

    function handlePress(event: GestureResponderEvent) {
    //@ts-expect-error React Native Types do not include altitudeAngle
    const isPencilTouch = !!event.nativeEvent.altitudeAngle;
    ...
}
Run Code Online (Sandbox Code Playgroud)