我有一个简单的web应用程序,我正试图通过Android WebView来显示它。该网页仅由一个HTML表组成。所述表格的每个单元格都具有设置为javascript函数的onclick属性,该javascript函数调出具有某些信息的框。
这在所有浏览器中都能很好地工作,无论是桌面还是移动浏览器。然而,当我试图通过我的Android WebView点击任何表格单元时,什么也没有发生,网页似乎无法识别这些点击。
(注意:我确实为webview启用了JavaScript,它确实做了它应该做的事情,例如,当文档被加载时,只是它不能识别点击,也不会触发相应的事件。)
我试着寻找答案,但我没有运气。我找到的所有线程都是关于解决不同问题的。
我没有试图通过调用JavaScript函数来运行安卓代码,我只需要网站JS来识别点击。
我要怎么做才能让它工作呢?非常感谢,如果我的术语不准确,请不要太生气,我只是一个自学成才的爱好者。
发布于 2018-09-15 04:34:18
问题是我使用setOnTouchListener
来处理WebView的点击,即使我确保返回false,以便让安卓知道点击应该由WebView进一步处理,但这并没有发生。我相信可以通过在代码中的某个地方调用super.OnTouchEvent(event)
来解决这个问题,但我不确定如何准确地做到这一点,而且我还发现了一个相当简单的方法,在我看来,它使实际发生的事情变得更加清晰。
这个想法是通过扩展WebView
并覆盖onTouchEvent
方法来创建一个自定义的"MyWebView“类:
public class MyWebView extends WebView
{
private GestureDetector mDetector;
public MyWebView(Context context)
{
super(context);
mDetector = new GestureDetector(context, new MyGestureListener());
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
mDetector.onTouchEvent(event);
this.performClick();
return super.onTouchEvent(event);
}
@Override
public boolean performClick()
{
return super.performClick();
}
class MyGestureListener extends GestureDetector.SimpleOnGestureListener
{
@Override public boolean onDown(MotionEvent event)
{
return true;
}
@Override public boolean onSingleTapConfirmed(MotionEvent e)
{
//do stuff here
return false;
}
}
}
发布于 2018-09-14 08:19:46
试试看
然后在中,直接从按钮标记调用它:
https://stackoverflow.com/questions/52322870
复制相似问题