2013-06-09 4 views
0

для моей магистерской диссертации Я разработал приложение распознавания жестов, которое использует kinect для перемещения курсора мыши в окне sony google tv. Он отлично работает для моего собственного письменного приложения, но для возможности использовать его в сотрудничестве с веб-просмотрами веб-просмотр должен запускать javascript-функции для элементов onmouseover и onmouseout.Webview с Javascript onmouseover/onmouseout не работает

т.е:

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

При нажатии этой кнопки Javascript функция (., Соответственно это родная реализация) называется. Но onMouseOut и onMouseOver не работают.

Есть ли какое-либо исправление/возможное решение для этого?

Спасибо заранее,

Sebastian

Edit: События работают в браузере Google Chrome для Android, поэтому он должен работать как-то в WebView, не так ли?

ответ

0

Создание такого рода работы в веб-просмотре несколько сложно - вам нужно убедиться, что вы подключаете javascript и многое другое. Быстрый тест можно выполнить, используя Apache Cordova aka Phonegap.

Запустите свой javascript там, если он не работает, он не будет работать на телевизоре. Если это так, вам просто нужно изменить ваш вызов WebView. Затем вы можете включить javascript в своих настройках. Для получения дополнительной информации см. http://developer.android.com/reference/android/webkit/WebView.html

+0

Спасибо за ответ Les Vogel, но это не помогает мне получить Javascript onMouseOver onMouseOut. Даже если я изменяю только ширину элемента, то есть через «this.style.width = '100px»; этот javascript никогда не выполняется над мышью. webview.getSettings() setJavaScriptEnabled (истина). был использован в моем коде. PS: Я полностью контролирую источник html. Речь идет не о введении кода на чужой сайт. – Sebastian

+0

Только видел часть onClick. Вы должны уметь переопределить onGenericMotion() в части Java, а затем сообщить об этом в веб-приложении. –

+0

Спасибо за ваш ответ, к сожалению, OnGenericMotion не запускается на MouseOver для HTML-элементов (он запускается только для веб-просмотра). Любые другие предложения? – Sebastian

0

Так просто! нужны только некоторые изменения с кодом. вам необходимо добавить динамическое событие в качестве «touchstart» и «touchhend» в качестве кода, приведенного ниже:

Добавьте тег сценария на страницу 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> 

Я думаю, что это поможет вам! :)

Смежные вопросы