当前位置: 首页 > 面试题库 >

从我的Android应用程序中的网页获取点击事件

黄沈浪
2023-03-14
问题内容

我正在创建一个带有按钮的示例网页。此网页正在使用webview在Android中调用。

现在,当我单击网页上的按钮(即html按钮)时。我应该能够在Android中执行一些代码

如何进行?

public class web extends Activity {
    WebView mWebView;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webdisplay);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.loadUrl("http://localhost/test.html");
        valid = new Button(ctx);
        valid.setOnClickListener(this);
        refuse = new Button(ctx);
        refuse.setOnClickListener(this);
    }
}

问题答案:

我们可以根据Android API文档检测以下HTML元素。

int     ANCHOR_TYPE     HitTestResult for hitting a HTML::a tag
int     EDIT_TEXT_TYPE  HitTestResult for hitting an edit text area
int     EMAIL_TYPE  HitTestResult for hitting an email address
int     GEO_TYPE    HitTestResult for hitting a map address
int     IMAGE_ANCHOR_TYPE   HitTestResult for hitting a HTML::a tag which contains HTML::img
int     IMAGE_TYPE  HitTestResult for hitting an HTML::img tag
int     PHONE_TYPE  HitTestResult for hitting a phone number
int     SRC_ANCHOR_TYPE     HitTestResult for hitting a HTML::a tag with src=http
int     SRC_IMAGE_ANCHOR_TYPE   HitTestResult for hitting a HTML::a tag with src=http + HTML::img
int     UNKNOWN_TYPE    Default HitTestResult, where the target is unknown

我认为您将能够使用WebView的setOnTouchListener函数获取所有事件。

WebView具有名为HitTestResult的内部类。HitTestResult类将帮助我们找到当用户单击WebView时按下的HTML元素。

HitTestResult类只有两个方法。

  1. getExtra():返回字符串。字符串具有用户单击的HTML元素
  2. getType():返回整数。它用于标识用户单击了哪个HTML元素。

您可以像这样:

wv.setOnTouchListener(new View.OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {
            WebView.HitTestResult hr = ((WebView)v).getHitTestResult();

            Log.i(TAG, "getExtra = "+ hr.getExtra() + "\t\t Type=" + hr.getType());
            return false;
        }
    });

编辑: 参考完美答案: 通过AndroidWebView中的javascript检测HTML按钮的单击



 类似资料:
  • 我正在努力处理关于我的android应用程序的系统服务。我必须在他/她强制关闭应用程序时验证用户。为此,我需要得到一个事件时,用户强制关闭设置的应用程序。请建议我如何实现这一点??

  • 在我的Android应用程序中,几天以来我一直面临“由java.lang.RuntimeException引起的”。 实际上,我正在使用一些第三方(.jar)库文件来实现我的应用程序中的音频水印检测功能,这些库对于API级别27及以下的应用程序运行良好,但对于API级别28及以上的应用程序存在问题。因此,为了解决这个问题,我们的技术合作伙伴向我们提供了更新的(.jar)库文件,这些文件对于API级

  • 我已经从谷歌阅读了这个标准描述:https://developer.android.com/training/sharing/receive 在此之后,我更新了我的AndroidManifest.xml,以包括一个意图过滤器来接受来自其他应用程序的共享(对于各种哑剧类型)。 我可以将我的应用程序视为其他应用程序中的共享选项,当我在其他应用程序中选择一个文件(例如,照片应用程序中的图像文件)并选择与

  • 2020-01-28T01:42:46.028688+00:00 Heroku[web.1]:使用命令启动进程 2020-01-28T01:42:45.000000+00:00APP[api]:生成成功 2020-01-28T01:42:48.451589+00:00Heroku[web.1]:状态从启动更改为崩溃 2020-01-28T01:42:48.433700+00:00 Heroku[W

  • 问题内容: 我希望能够启动活动或服务并尽快获取该进程的PID,这将是最好的情况。除了浏览/ proc目录外,我是否还有其他选择,否则会导致活动/服务启动到我在proc中找到所需时间之间的时间量竞争状态发生变化目录并开始观察? 问题答案: 我认为您需要使用ActivityManager:有关过程信息,请参见http://developer.android.com/reference/android/

  • > 有没有办法从play Store获得某个应用的版本号?google为此目的公开了任何API吗?我从命令行使用CURL执行了如下操作,但得到了一个错误。 我怎样才能在Android系统中获得已安装应用程序的版本? 本部分通过解决