zoukankan      html  css  js  c++  java
  • Android WebView 捕捉点击的URL中的信息

    项目要求,在WebView中点击搜索关键字,加载其他Web页面时,需要在一个文本输入框中,实时显示关键字

    事实上,这种点击,是WebView内的,并没有跳出这个WebView,Activity也没有经历任何生命周期。看似无法捕捉

    事实上很简单,通过重写shouldOverrideUrlLoading(),可以获取各种点击事件对应的URL。解析其参数列表,看其中有没有

    keys关键字,获取其value,解析、显示就可以了

    shouldOverrideUrlLoading() 方法
    返回true 表明点击网页里面的链接还是在当前的webview里跳转,
    返回false 跳到其他浏览器

    其中,获取URL中的参数Map的类URLUtil.java,见另一篇博文: URL网址参数解析类
    private class MyWebViewClient extends WebViewClient {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {     
                if(url.startsWith("intent://")){
                    return true;
                }
                super.shouldOverrideUrlLoading(view, url);
                if (TextUtils.isEmpty(url))
                    return true;
    
                //以下内容  用于:页面中点击其他关键字搜索时,在最上端的EditText中添加hint
                DebugUtil.d("myc", "url = " + url);
    Map
    <String, String> mapRequest = URLUtil.getRequestParamMap(url); if(mapRequest!=null && mapRequest.size()!=0) { String keyWord = mapRequest.get("keys");  //获取关键字字段 DebugUtil.d("myc", "keyWord = " + keyWord); if (!TextUtils.isEmpty(keyWord)) { try { String result = URLDecoder.decode(keyWord, "UTF-8"); //用Android自带的URLDecoder解析成中文 setKeyword(result); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } return true; } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { super.onReceivedError(view, errorCode, description, failingUrl); } }
  • 相关阅读:
    基于SpringBoot+Mybatis+AntDesign快速开发平台,Jeecg-Boot 1.1 版本发布
    jeecg-boot 简易部署方案
    JeecgBoot版本4月份新版即将发布,抢先体验。。
    Jeecg-Boot 1.0版本发布,企业级快速开发平台
    jeecg之弹窗插件lhgdialog小结
    JEECG 集成KiSSO单点登录实现统一身份认证
    sass
    http1.1管线话 vs htttp2.0 多路复用
    http 状态码
    http参考
  • 原文地址:https://www.cnblogs.com/maxiaodoubao/p/5033015.html
Copyright © 2011-2022 走看看