0

对于我的硕士论文,我开发了一个手势识别应用程序,它使用 kinect 在索尼谷歌电视盒内移动鼠标光标。它适用于我的本机编写的应用程序,但是为了能够与 webviews 合作使用它,webview 需要在元素 onmouseover 和 onmouseout 事件上触发 javascript 函数。

IE:

<input type="button" value="Test" onClick="AndroidFunction.onGenericMotionEventHover();" onMouseOver="AndroidFunction.onGenericMotionEventHover();" onMouseOut="AndroidFunction.onGenericMotionEventNoHover();" style="width:200px;height:200px;" />

当我按下按钮时,将调用 javascript 函数(分别是它的本机实现)。但是 onMouseOut 和 onMouseOver 不起作用。

是否有任何修复/可能的解决方案?

提前致谢,

塞巴斯蒂安

编辑:这些事件在适用于 Android 的 Google Chrome 浏览器中工作,所以它应该在 Webview 中以某种方式工作,不是吗?

4

2 回答 2

0

让这种事情在 webview 中工作有点棘手——你需要确保你连接了 javascript 等等。可以使用Apache Cordova aka Phonegap 进行快速测试。

在那里运行你的javascript,如果它不工作,它就不能在电视上工作。如果是这样,那么您只需要修改您对 WebView 的调用。然后您可以在您的网络设置中启用 javascript。有关详细信息,请参阅http://developer.android.com/reference/android/webkit/WebView.html

于 2013-06-10T16:42:19.780 回答
0

太简单!只需要对代码进行一些更改。您需要将动态事件添加为“touchstart”和“touchend”,代码如下:

在您的 html 页面上添加脚本标记。

<input type="button" value="Test" id="btnTouch" style="width:200px;height:200px;" />


<script >
        var prevent=false;
       document.getElementById('btnTouch').addEventListener("touchstart", function(e)
        {
                if(prevent){e.preventDefault();}
                AndroidFunction.doSomeThingOnTouchEvent();
        },false);
       document.getElementById('btnTouch').addEventListener("touchmove", function(e)
        {
                if(prevent){e.preventDefault();}
                AndroidFunction.doSomeThingOnTouchMove();
        },false);
        document.getElementById('btnTouch').addEventListener("touchend", function(e)
        {
                AndroidFunction.doSomeThingOnTouchUp();
        },false);
</script>

我认为它对你有帮助!:)

于 2015-09-25T10:40:43.560 回答