WebView有没有长按事件? HarmonyOS 鸿蒙Next

WebView有没有长按事件? HarmonyOS 鸿蒙Next 【设备信息】Mate60

【API版本】Api13

【DevEco Studio版本】5.0.7.200

【问题描述】

WebView有没有长按事件?是针对整个Html进行长按事件(不是Html中的某个图片或链接长按),要实现长按要怎么写?

3 回复

可以参考下面的demo,看能否满足要求:

//Page .ets:

import { webview } from '@kit.ArkWeb';
import { promptAction } from '@kit.ArkUI';
@Component
struct Page25012302 {
    controller: webview.WebviewController = new webview.WebviewController();
    build() {
        Column() {
            Web({src:$rawfile('index2.html'), controller: this.controller})
                .domStorageAccess(true)
                .gesture(
                    LongPressGesture({ repeat: true,duration:400 })
                        .onAction((event: GestureEvent) => {
                            promptAction.showToast({
                                message: '长按',
                                duration: 2000
                            });
                        })
                        .onActionEnd(() => {
                            promptAction.showToast({
                                message: '长按结束',
                                duration: 2000
                            });
                        })
                )
        }
        .height('100%')
        .width('100%')
    }
}

//index2.html:

<!DOCTYPE html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Open New Window Example</title>
</head>
<body>
<p>sadadasdadas</p>
<p>sadadasdadas</p>
<p>sadadasdadas</p>
<p>sadadasdadas</p>
<p>sadadasdadas</p>
<p>sadadasdadas</p>
<p>sadadasdadas</p>
<p>sadadasdadas</p>
<p>sadadasdadas</p>
<script>
    // 禁用长按手势的函数
    function disableLongPress() {
       // 禁用上下文菜单
       document.addEventListener('contextmenu', (e) =&gt; e.preventDefault());
       // 禁用选择文本
       document.addEventListener('selectstart', (e) =&gt; e.preventDefault());
    }
        // 页面加载完成后执行禁用函数
        window.onload = function() {
    disableLongPress();
        };
</script>
</body>
</html>

更多关于WebView有没有长按事件? HarmonyOS 鸿蒙Next的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


你给arkWeb组件,添加手势监听的长按事件就可以了啊

在HarmonyOS(鸿蒙)中,WebView组件支持长按事件。WebView是一个用于显示网页内容的组件,开发者可以通过监听onLongPress事件来实现长按操作的处理。具体实现可以通过WebViewsetOnLongPressListener方法设置长按事件的监听器,当用户在WebView中长按时,会触发相应的回调函数。开发者可以在回调函数中执行自定义的逻辑,例如显示上下文菜单或执行其他操作。需要注意的是,WebView的长按事件处理可能会受到网页内容的影响,某些网页元素可能已经内置了长按行为,开发者需要根据具体需求进行处理。

回到顶部