Android WebView 获取html页面聚焦input在页面的位置

这篇具有很好参考价值的文章主要介绍了Android WebView 获取html页面聚焦input在页面的位置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Android WebView 获取html页面聚焦input在页面的位置,实现代码如下:

@SuppressLint("SetJavaScriptEnabled")
    private void HTMLFocusLocation(Context context) {
        String js = "(function () {" +
                "var activeElement = document.activeElement;" +
                "var rect = activeElement.getBoundingClientRect();" +
                "return {'left': rect.left, 'top': rect.top, 'width': rect.width, 'height': rect.height}" +  // 返回json对象
                "})();";
        // 设置支持 javaScript
        mWebView.getSettings().setJavaScriptEnabled(true);
        // 执行js获取聚焦位置的坐标
        mWebView.evaluateJavascript(js, new ValueCallback<String>() {
            @Override
            public void onReceiveValue(String value) {
                Log.d(TAG, "onReceiveValue: " + value);
                try {
                    JSONObject object = new JSONObject(value);
                    double left = object.optDouble("left");
                    double top = object.optDouble("top");
                    double width = object.optDouble("width");
                    double height = object.optDouble("height");
                    Log.d(TAG, "onReceiveValue left: " + left + ", top: " + top + ", width: " + width + ", height: " + height);

                    // 返回的数据是dp, 用的时候需要转换成像素px
                    float density = context.getResources().getDisplayMetrics().density;
                    Log.d(TAG, "onReceiveValue density: " + density);

                    int leftPixel = (int) (left * density);
                    int topPixel = (int) (top * density);
                    int widthPixel = (int) (width * density);
                    int heightPixel = (int) (height * density);
                    Log.d(TAG, "onReceiveValue left: " + leftPixel + ", top: " + topPixel + ", width: " + widthPixel + ", height: " + heightPixel);

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        });
    }

注意:文章来源地址https://www.toymoban.com/news/detail-616224.html

  • WebView 要设置setJavaScriptEnabled支持JavaScript调用
  • 返回的数值是以dp为单位,使用时需要转换为像素px

到了这里,关于Android WebView 获取html页面聚焦input在页面的位置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android项目在 app 中通过 WebView 访问 url显示空白,使用浏览器可以打开,Android WebView加载出现空白页面问题解决

    服务器证书校验主要针对 WebView 的安全问题。 在 app 中需要通过 WebView 访问 url,因为服务器采用的自签名证书,而不是 ca 认证,使用 WebView 加载 url 的时候会显示为空白,出现无法加载网页的情况。 使用 ca 认证的证书,在 WebView 则可以直接显示出来,不需要特殊处理。 以往

    2024年02月04日
    浏览(54)
  • Android与H5交互 -- 点击H5跳转到 Android原生 页面 ,webview与h5(js)交互

    Android与H5交互 app开发过程中,利用原生+h5模式来开发是比较常见的 下面案例演示的是:原生调起一个H5页面,然后H5点击跳转到原生 WebViewActivity页面 调用H5 ,点击H5链接 跳转到原生MainActivity页面 注意 别忘了 !-- 添加网络权限 -- 一、清单文件,增加的配置 data的数据就是H5

    2023年04月14日
    浏览(72)
  • [Android 13]Input系列--EventHub获取事件

    hongxi.zhu 2023-7-12 Android T 从前面inputflinger的启动分析中,我们知道事件来源是在 EventHub::getEvents , 所以我们重点看下这个方法的流程来了解事件是如何从驱动上报中获取的。 EventHub::getEvents frameworks/native/services/inputflinger/reader/EventHub.cpp EventHub::scanDevicesLocked() EventHub::openDeviceLock

    2024年02月15日
    浏览(39)
  • element-ui表单input输入框获取自动聚焦功能

    1.问题描述 当用户点击新增按钮时,弹出新增页面,需要form表单中的input框自动获取焦点 2.解决的方法 第一步:给form表单的input输入框添加ref属性 第二步:定义一个方法 我是使用vue开发前端页面的,所以在methods中定义一个方法,在方法中写input输入框自动聚焦的功能 第三步

    2024年02月14日
    浏览(44)
  • Android Compose 如何获取位置和大小。

      boxRect.value = coordinates.boundsInParent() 是针对当前父布局。如果想针对整个手机可以用

    2024年02月08日
    浏览(36)
  • 微信小程序当在一个页面有多个input输入框,自动弹键盘,需要点击input框2次才能聚焦的问题

    微信小程序当在一个页面有多个input输入框,自动弹键盘,需要点击input框2次才能聚焦。 解决办法,在点击input框时,调用bindtap事件,关闭键盘、设置焦点。代码示例如下: 方法仅供参考!

    2024年02月11日
    浏览(42)
  • Android开发:RecyclerView获取item位置的几种方法比较

            当使用 RecyclerView 来展示列表数据时,获取 item 的位置是一个常见的需求。RecyclerView 提供了多种获取 item 位置的方法,包括 getAdapterPosition() 、 getBindingAdapterPosition() 、 getAbsoluteAdapterPosition() 等等。这些方法的实现原理和返回值有所不同,因此在实际使用时需要根据

    2023年04月20日
    浏览(83)
  • Android权限申请、相册选择图片、拍照、获取联系人、页面跳转

    目前第一版封装了:页面启动、页面启动回调、获取通讯录联系人、获取相册图片、拍照获取图片、单条权限申请、多条权限申请,且已适配到Android 13 导入 权限申请 权限申请支持单条权限和多条权限申请,支持强制拒绝后弹窗提示用户并引导区设置也开启权限 默认强制拒

    2024年02月16日
    浏览(48)
  • vue input获取光标位置,并追加内容

    项目中需要实现在输入框内的任意位置,追加内容,这里通过input的selectionStart属性还有setSelectionRange方法来实现。 首先来看selectionStart属性,用于获取文本框选区的开始位置,selectionEnd用于获取文本框选区结束的位置,举个栗子: 在该功能中,我们不是选择文字,主要是需要

    2024年02月16日
    浏览(36)
  • Android Studio实现解析HTML获取图片URL将图片保存到本地

    效果 项目本来是要做成图片保存到手机然后读取数据后瀑布流展示,但是有问题,目前只能做到保存到手机 activity_main.xml MainActivity ImageItem ImageAdapter

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包