晕伙计们!
我的 android 应用程序有一个网络视图链接一个网络,假设“google.com”。我想做的一件事是当用户点击“搜索”时,我的应用程序将烤“搜索”。当用户点击“邮件”时,将烤邮件。
我知道如果网站是我的,我可以将 javascript 添加到 html 中来处理 onClick 事件。但情况是网站是公共网站。有什么解决办法吗?
是否也可以在 Web 视图中获取数据以供我的应用程序使用?我正在研究 REST 和 Jsoup。
谢谢!!
晕伙计们!
我的 android 应用程序有一个网络视图链接一个网络,假设“google.com”。我想做的一件事是当用户点击“搜索”时,我的应用程序将烤“搜索”。当用户点击“邮件”时,将烤邮件。
我知道如果网站是我的,我可以将 javascript 添加到 html 中来处理 onClick 事件。但情况是网站是公共网站。有什么解决办法吗?
是否也可以在 Web 视图中获取数据以供我的应用程序使用?我正在研究 REST 和 Jsoup。
谢谢!!
您可以通过 onTouchListener 实现 onClickListener:
webView.setOnTouchListener(new View.OnTouchListener() {
public final static int FINGER_RELEASED = 0;
public final static int FINGER_TOUCHED = 1;
public final static int FINGER_DRAGGING = 2;
public final static int FINGER_UNDEFINED = 3;
private int fingerState = FINGER_RELEASED;
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
switch (motionEvent.getAction()) {
case MotionEvent.ACTION_DOWN:
if (fingerState == FINGER_RELEASED) fingerState = FINGER_TOUCHED;
else fingerState = FINGER_UNDEFINED;
break;
case MotionEvent.ACTION_UP:
if(fingerState != FINGER_DRAGGING) {
fingerState = FINGER_RELEASED;
// Your onClick codes
}
else if (fingerState == FINGER_DRAGGING) fingerState = FINGER_RELEASED;
else fingerState = FINGER_UNDEFINED;
break;
case MotionEvent.ACTION_MOVE:
if (fingerState == FINGER_TOUCHED || fingerState == FINGER_DRAGGING) fingerState = FINGER_DRAGGING;
else fingerState = FINGER_UNDEFINED;
break;
default:
fingerState = FINGER_UNDEFINED;
}
return false;
}
});
愿这对您有所帮助:
伙计,除了在HTML 代码中编写 Onclick 之外,您无法在 android 中点击 Webview 的内部对象,但您可以通过onTouchListener
在您的Webview
对象上实现并覆盖您的方法来获得整个 webview 的点击,onTouch()
如下所示:
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (v.getId() == R.id.my_WebView && event.getAction() == MotionEvent.ACTION_DOWN){
// write your code here
}
return false;
}