Öğeler klasöründe yerel bir HTML sayfası görüntüleyen bir WebView
var. WebView
, Activity
numaralı telefondan daha büyük bir düzeneğin bir parçasıdır. Kullanıcıların EditText
widget'ından gelen metni WebView
içindeki bir Giriş Öğesine sürüklemelerine izin vermeye çalışıyorum. Her şey, sürükleyici dinleyici tarafından alınan ekran koordinatlarının document.elementFromPoint
tarafından kullanılan ekran koordinatlarına dönüştürülmesi dışında iyi çalışır. Eşleşmiyorlar. Daha sonra kullanıcılar parmağından daha aşağı olan giriş kutularına metni bırakmaya devam edecektir. Herhangi bir yardım takdir edilecektir. Uyarı: Javascript bilgim oldukça acıklı.View'ın dokunmatik konumunu WebView'un HTML ekran konumuna dönüştürme
Temel akışı:
- WebView ondrag olay ACTION_DROP olayı yakalar.
- etkinliğin x, y konumu
- JavaScript işlevi eleman noktaları dayalı bulur bir JavaScript işlevi geçirilen ve benim Aktivite olarak değerini
günceller edilir:
private class OnWebViewDragListener implements OnDragListener {
public boolean onDrag(View v, DragEvent event) {
switch (event.getAction()) {
case DragEvent.ACTION_DROP:
String dropText = event.getClipData().getItemAt(0).getText().toString();
mJavaScript._dropText(mWebView, dropText, event.getX(), event.getY());
return true;
default:
break;
}
return false;
}
}
JavaScript sarıcı:
public void _dropText(WebView wv, String text, float x, float y) {
wv.loadUrl("javascript:dropText('" + text + "', " + x + ", " + y + ")");
}
JavaScript işlevi:
<script type="text/javascript">
function dropText(text, x, y) {
var elem = document.elementFromPoint(x, y);
if (elem.tagName == "INPUT") {
elem.value = text;
}
}
</script>
Merhaba @Jay, bu harika çözüm için teşekkürler. Birkaç saatimi harcayarak, koordinatları tercüme etmenin en iyi yolunu bulmaya çalışıyorum :) Btw, nesneyi sürüklerken bir sorun mu var? Örneğin, bunu devam ettiriyorum "Sürükleme devam ediyor, ancak sürükle penceresi tutamağı yok" ve bunun nedeni benim dokunma hareketim olayı durdurmayı tetikliyor. İşte bu benim için kodum https://gist.github.com/anonymous/8161cae250a9f0c9002a – ShP
Bu çok tanıdık geliyor ama tamamen hatırlayamıyor. 3 yıl geçti ve artık bu kodlara erişimim yok. –
Benim için de iyi çalıştı. Teşekkürler! – Shilpi