HarmonyOS鸿蒙Next中屏幕点击事件监控代码

HarmonyOS鸿蒙Next中屏幕点击事件监控代码 屏幕点击事件监控代码。如何监控用户是否点击屏幕,长时间未点击屏幕会执行相关方法

4 回复

navigation下的页面只需要在navigation里添加ontouch事件即可,如果有其他非navigation路由跳转的需要单独设置ontouch事件

import { HomeComponent, StationDetailPage } from 'home/Index';
import { MapViewContainer } from 'map/Index';
import { CustomTabBar } from '../components/CustomTabBar';
import { AppConstants } from '../constants/AppConstants';
import { PersonInfo } from 'user/Index';
import { promptAction, ShowDialogSuccessResponse } from '@kit.ArkUI';
import { common } from '@kit.AbilityKit';

@Entry
@Component
struct Index {
  @Provide('appPathStack') appPathStack: NavPathStack = new NavPathStack();
  @State currentIndex: number = 0
  private timer: number = 0
  context = getContext(this) as common.UIAbilityContext
  ...
  build() {
    Navigation(this.appPathStack) {
      ...
    }
    .hideTitleBar(true)
    .navDestination(this.PageMap)
    .mode(NavigationMode.Stack)
    .onTouch((e) => {
      // 增加触摸事件,有触摸时清空延迟任务
      clearTimeout(this.timer)
      setTimeout(() => {
        console.log('test onTouch')
      })
    })
  }
}

更多关于HarmonyOS鸿蒙Next中屏幕点击事件监控代码的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


const UIObserver = context.getUIObserver()
UIObserver.on('willClick', (event, info) => {
}

UIObserver.on('didClick', (event, info) => {
}

在HarmonyOS鸿蒙Next中,屏幕点击事件的监控可以通过TouchEventComponent的相关API来实现。以下是一个简单的示例代码,展示了如何监控屏幕的点击事件:

import { TouchEvent, Component } from '@ohos.arkui';

class MyComponent extends Component {
  onTouchEvent(event: TouchEvent) {
    switch (event.action) {
      case TouchEvent.ACTION_DOWN:
        console.log('屏幕被按下');
        break;
      case TouchEvent.ACTION_MOVE:
        console.log('屏幕被滑动');
        break;
      case TouchEvent.ACTION_UP:
        console.log('屏幕被抬起');
        break;
      default:
        break;
    }
  }

  build() {
    return (
      <div
        onTouchEvent={this.onTouchEvent.bind(this)}
        style={{ width: '100%', height: '100%', backgroundColor: '#FFFFFF' }}
      >
        <text>点击屏幕</text>
      </div>
    );
  }
}

在这个示例中,onTouchEvent方法用于处理屏幕的点击事件。通过TouchEventaction属性,可以判断当前的事件类型,如按下(ACTION_DOWN)、滑动(ACTION_MOVE)和抬起(ACTION_UP)。Componentbuild方法中定义了一个div元素,并通过onTouchEvent绑定事件监听器。当用户点击屏幕时,相应的事件会被触发,并在控制台中输出相应的日志信息。

在HarmonyOS Next中,监控屏幕点击事件可以通过实现OnTouchListener接口来完成。以下是一个简单的示例代码:

import ohos.agp.components.Component;
import ohos.agp.components.Component.TouchEventListener;
import ohos.agp.window.service.WindowManager;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        Component rootView = LayoutScatter.getInstance(this).parse(ResourceTable.Layout_ability_main, null, false);
        setUIContent(rootView);

        rootView.setTouchEventListener(new TouchEventListener() {
            @Override
            public boolean onTouchEvent(Component component, TouchEvent touchEvent) {
                int action = touchEvent.getAction();
                switch (action) {
                    case TouchEvent.PRIMARY_POINT_DOWN:
                        // 处理按下事件
                        break;
                    case TouchEvent.PRIMARY_POINT_UP:
                        // 处理抬起事件
                        break;
                    case TouchEvent.POINT_MOVE:
                        // 处理移动事件
                        break;
                }
                return true;
            }
        });
    }
}

在这段代码中,TouchEventListener用于监听屏幕的触摸事件,并根据不同的动作(如按下、抬起、移动)执行相应的操作。

回到顶部