对于我的硕士论文,我开发了一个手势识别应用程序,它使用kinect将鼠标光标移动到索尼谷歌电视盒内。它对我的原生书面应用程序非常有效,但是为了能够与webviews一起使用它,webview需要在元素onmouseover和onmouseout事件上激活javascript函数。
即:
<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中运行,不应该吗?
答案 0 :(得分:0)
让这种东西在webview中工作有点棘手 - 你需要确保你连接javascript等等。可以使用Apache Cordova aka Phonegap进行快速测试。
在那里运行你的javascript,如果它不起作用,它将无法在电视上运行。如果是,那么您只需要修改WebView的调用。然后,您可以在您的网络设置中启用JavaScript。有关详细信息,请参阅http://developer.android.com/reference/android/webkit/WebView.html
答案 1 :(得分: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>
我认为它可以帮到你! :)