2013-02-13 2 views
2

Я пытаюсь создать приложение WebView на Android с помощью холста HTML5 и касания.Touch events в Android WebView

Вот что я думаю, что это соответствующая часть моего кода:

В OnCreate:

WebView myWebView = (WebView) findViewById(R.id.webview); 
WebSettings webSettings = myWebView.getSettings(); 
webSettings.setJavaScriptEnabled(true); 
    ... 
    myWebView.loadData(content,"text/html", "UTF-8"); 

Где строка «содержание» содержит блок HTML/JavaScript, которые содержат следующие строки.

this.canvas = document.getElementById(AN_ID); // AN_ID is id of a canvas tag 
    ... 
    this.canvas.addEventListener("touchstart", function(e) { 
    ... 
    }, false); 

    this.canvas.addEventListener("touchend", function(e) { 
    ... 
    }, false); 

И файл activity_main.xml содержит тег

<WebView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
/> 

Однако мой тест устройство, Nexus 7, кажется, не реагировать на события прикосновения. Если я заменю «touchstart» и «touchhend» на «mousedown» и «mouseup», похоже, что событие mousedown распознается. Но мышь не ведет себя правильно (т. Е. Как тот же код, который работает в браузере).

У меня, очевидно, отсутствует что-то, например. параметр конфигурации, который мне нужно включить события касания в javascript?

ответ

1

OK. Я решил это.

Я по-прежнему пытался получить значения Page.XPage.Y, а не из event.targetTouch. И я предполагал, что координаты были доступны из-за того, что на самом деле это не так. Вы должны отслеживать их во время touchmove.