WebView加载的网页中touch事件处理

        一直有接触webview,也用到了很多关于webview的各种特性,一直没找到时机吧所有的webview的用法总结起来,这次也暂时先记录一下webview加载网页,我们在网页中的点击,滑动等动作的事件处理机制。当时的需求大概是我在fragment中使用WebView,当无操作15秒之后退出该fragment,回到activity。我的想法就是监听网页中的点击和滑动事件,然后有操作就让一个int变量值为0,然后handler里面对这个值进行判断,大于15就退出,小于15就++。话不多说,直接上代码

public class MyWebView extends WebView {

    private OnTouchEventCallback mOnTouchEventCallback;

    public MyWebView(Context context) {
        super(context);
    }

    public MyWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public MyWebView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()){
            case MotionEvent.ACTION_DOWN:
                if (mOnTouchEventCallback!=null){
                    mOnTouchEventCallback.onActionDown();
                }
            break;
            case MotionEvent.ACTION_MOVE:
                if (mOnTouchEventCallback!=null){
                    mOnTouchEventCallback.onActionMove();
                }
                break;
        }
        return super.onTouchEvent(event);
    }

    public OnTouchEventCallback getOnTouchEventCallback() {
        return mOnTouchEventCallback;
    }

    public void setOnTouchEventCallback(
            final OnTouchEventCallback onTouchEventCallback) {
        mOnTouchEventCallback = onTouchEventCallback;
    }

    public static interface OnTouchEventCallback {
        public void onActionDown();
        public void onActionMove();
    }
}
        这是一个自定义的webview,继承自webview,这里我们重写onTouchEvent方法,并对外提供一个接口。最后在fragment中setOnTouchEventCallback,示例如下
webView.setOnTouchEventCallback(new MyWebView.OnTouchEventCallback() {
            @Override
            public void onActionDown() {
                Log.e(TAG, "onActionDown");
            }

            @Override
            public void onActionMove() {
                Log.e(TAG, "onActionMove");
            }
        });

猜你喜欢

转载自blog.csdn.net/Bentley_li/article/details/77042373