webview長按事件js監聽


做app開發時,用到了webview,需要監聽webview的長按事件,使用原生的js處理監聽如下:

var timeOutEvent = 0; //定時器 
    //開始按 
    function gtouchstart() {
        timeOutEvent = setTimeout("longPress()", 500); //這里設置定時器,定義長按500毫秒觸發長按事件,時間可以自己改,個人感覺500毫秒非常合適 
        return false;
    };
    //手釋放,如果在500毫秒內就釋放,則取消長按事件,此時可以執行onclick應該執行的事件 
    function gtouchend() {
        clearTimeout(timeOutEvent); //清除定時器 
        if (timeOutEvent != 0) {
            //這里寫要執行的內容(尤如onclick事件) 
            //alert("你這是點擊,不是長按");
        }
        return false;
    };
    //如果手指有移動,則取消所有事件,此時說明用戶只是要移動而不是長按 
    function gtouchmove() {
        clearTimeout(timeOutEvent); //清除定時器 
        timeOutEvent = 0;
    };

    //真正長按后應該執行的內容 
    function longPress() {
        timeOutEvent = 0;
        //執行長按要執行的內容,如彈出菜單 
        //alert("長按事件觸發");
        do_Page.fire("showTool",{"index":index,"url":images[index].source});
    }

這里設置500ms點擊為長按處理,主要用到了3個事件:

ontouchstart、ontouchmove、ontouchend,主要思路:

在ontouchstart事件中啟動一個定時器,定時器間隔時間為500ms,即500ms后自動執行longPress邏輯,並清除定時器事件,ontouchend表示tap彈起,這時直接清除定時器,ontouchmove表示手指滑動,直接清除定時器即可,這樣就簡單實現了長按事件監聽處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM