HarmonyOS 鸿蒙Next如何全局监控触摸事件?

HarmonyOS 鸿蒙Next如何全局监控触摸事件? 查了下资料有人说

import inputMonitor from '@ohos.multimodalInput.inputMonitor';

但是这个是系统接口,是不是开发应用用不了?

实际上我导入报错:

Cannot find module '@ohos.multimodalInput.inputMonitor' or its corresponding type declarations. 

还有

import { inputMonitor } from '@kit.InputKit';

报错:

Module '"@kit.InputKit"' has no exported member 'inputMonitor'. <ArkTSCheck>

那有别的方法处理吗


更多关于HarmonyOS 鸿蒙Next如何全局监控触摸事件?的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

楼主最后找到了吗,有能全局监控触摸事件么,或者inputMonitor 引用失败解决了么

更多关于HarmonyOS 鸿蒙Next如何全局监控触摸事件?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


可以试试触摸事件的时候使用这些 分别是 事件开始 事件更新 事件结束 这里边可以进行你想要的操作

.onActionStart((event: GestureEvent) => {

})

.onActionUpdate((event: GestureEvent) => {
  if (event) {

  }
})

.onActionEnd((event: GestureEvent) => {

})

非常感谢,这段代码是写在哪里呢?EntryAbility?

你的触摸事件下,

触摸拖动照片

Image(this.imgpath)
    .width(this.imgwid)
    .height(this.imgwid)
    .translate({ x: this.pinchValue<1?0:this.offsetX, y:  this.pinchValue<1?0:this.offsetY })
    .defaultFocus(true)
    .gesture(
      PanGesture()
        .onActionStart((event: GestureEvent) => {
        })
        .onActionUpdate((event: GestureEvent) => {
          if (event) {
            this.offsetX = this.positionX + event.offsetX
            this.offsetY = this.positionY + event.offsetY
          }
        })
        .onActionEnd((event: GestureEvent) => {
          this.positionX = this.offsetX
          this.positionY = this.offsetY
        })
    ),

在HarmonyOS(鸿蒙)系统中,全局监控触摸事件通常涉及到系统级的服务或框架层的修改,这不同于应用层的常规事件监听。在鸿蒙系统中,你可以通过以下几种方式实现全局触摸事件的监控(注意,这些方法可能需要较高的系统权限或定制系统):

  1. 事件分发机制修改:鸿蒙系统的事件分发机制可能允许你在事件被派发到应用之前进行拦截。这通常需要对系统框架层进行修改,比如重写事件分发逻辑。

  2. 系统服务监听:创建或修改系统服务,该服务能够监听底层的输入事件。这需要对系统服务有深入的理解,并且可能需要访问系统级的API。

  3. 输入设备驱动层修改:在输入设备驱动层添加触摸事件的上报逻辑,使得这些事件在到达应用层之前被系统服务捕获。这种方法需要对设备驱动开发有深入了解。

  4. 使用系统提供的API(如果可用):鸿蒙系统可能提供了一些系统级的API用于监控触摸事件,但这些API的文档和使用限制可能并不公开。

请注意,全局监控触摸事件可能涉及用户隐私和安全问题,因此在实际应用中需要谨慎处理。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部