Android的 - 如何生成从JavaScript触摸事件? [英] Android - How to generate touch event from javascript?

查看:454
本文介绍了Android的 - 如何生成从JavaScript触摸事件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否有可能产生在JavaScript触摸事件会在我的Andr​​oid的WebView调用onTouchEvent()函数?

Is it possible to generate a touch event in javascript that'll invoke the onTouchEvent() function in my android WebView?

我试着用下面的JavaScript code产生既touchstart和touchend事件,但我的WebView onTouchEvent()函数没有被调用。

I tried with the following javascript code which generates both touchstart and touchend events, but my webview onTouchEvent() function does not get invoked.

try{
var evt = document.createEvent('TouchEvent');
evt.initTouchEvent('touchstart', true, true);
evt.view = window;
evt.altKey = false;
evt.ctrlKey = false;
evt.shiftKey = false;
evt.metaKey = false;
this.dispatchEvent(evt);

var evt1 = document.createEvent('TouchEvent');
evt1.initTouchEvent('touchend', true, true);
evt1.view = window;
evt1.altKey = false;
evt1.ctrlKey = false;
evt1.shiftKey = false;
evt1.metaKey = false;
this.dispatchEvent(evt1); 

}
catch(e)
{
    alert(e);
}

时的东西从我的code缺失或执行JavaScript事件甚至没有进入Android框架?

Is something missing from my code, or do the javascript events not even get into the android framework?

THX

推荐答案

不知道你打算如何使用触摸事件,并且也不能确定你可以从呈现的DOM泡沫触摸事件到包含WebView控件的句柄,但你可以试试这个方法:

Not sure how you plan to use the touch event, and also not sure you can bubble touch events from the rendered dom up to the containing webview control's handler, but you could try this approach:

1)的JavaScript接口添加到您的Web视图和揭露,抓住你的DOM生成的事件类的简单的对象:

1) Add a javascript interface to your web view and expose a simple object of a class that captures your dom-generated events:

(inside onCreate of ContainerActivity)

this.mWebView.addJavascriptInterface
    ( new JavascriptContainer() {
        final private WebView mView = ContainerActivity.this.mWebView;

        @Override
        public void captureEvent(final String sDetails) {
            // do what you want with the details and webview...
        }
    }
    , "appReceiver"
    );

2)捕获触摸事件,或在你的HTML渲染点击事件(或其他),并使用JavaScript将它们委托给暴露全球的AP preceiver

2) Capture touch events or click event (or whatever) in your rendered html and use javascript to delegate them to the exposed global "appReceiver":

if (window.appReceiver !== undefined) {
    window.appReceiver.captureEvent('blah blah: ' + event.x + ':' + event.y);
    ...
}

这篇关于Android的 - 如何生成从JavaScript触摸事件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆