美文网首页
WebView.HitTestResult的使用

WebView.HitTestResult的使用

作者: 俗人浮生 | 来源:发表于2019-04-09 21:04 被阅读0次

    在微信里看文章,文章都是网页,但长按图片后会弹出一个对话框让用户选择要进行的操作,这个操作我想很多人都很熟悉,那天笔者竟突然觉得有些神奇,难道说WebView有相应的API可以对页面上的资源类型进行区分吗?查了一下资料后发现确实如此,特此记录一下:

            //长按处理各种类型的事件
            mWebView.setOnLongClickListener(new OnLongClickListener() {
                @Override
                public boolean onLongClick(View v) {
                    WebView.HitTestResult result = mWebView.getHitTestResult();
                    if (null == result)
                        return false;
                    int type = result.getType();
                    switch (type) {
                        case WebView.HitTestResult.EDIT_TEXT_TYPE: // 选中的文字类型
                            break;
                        case WebView.HitTestResult.PHONE_TYPE: // 处理拨号
                            break;
                        case WebView.HitTestResult.EMAIL_TYPE: // 处理Email
                            break;
                        case WebView.HitTestResult.GEO_TYPE: //  地图类型
                            break;
                        case WebView.HitTestResult.SRC_ANCHOR_TYPE: // 超链接
                            break;
                        case WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE: // 带有链接的图片类型
                        case WebView.HitTestResult.IMAGE_TYPE: // 处理长按图片的菜单项
                            String url = result.getExtra();
                            if (url != null && URLUtil.isValidUrl(url)) {
                                //弹框
                            }
                            return true;
                        case WebView.HitTestResult.UNKNOWN_TYPE: //未知
                            break;
                    }
                    return false;
                }
            });
    

    基于这个东东,我们可以对网页不同的资源进行不同的处理操作,只要你封装得好,你可以打造一个功能齐全的WebView,当然,建议使用腾讯X5内核替换系统自带的WebView!

    相关文章

      网友评论

          本文标题:WebView.HitTestResult的使用

          本文链接:https://www.haomeiwen.com/subject/viyavqtx.html