项目要求,在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);
}
}

Android WebView 捕捉点击的URL中的信息的更多相关文章

  1. webview之如何设计一个优雅健壮的Android WebView?(下)(转)

    转载:https://iluhcm.com/2018/02/27/design-an-elegant-and-powerful-android-webview-part-two/ (这篇文章写得有点晚 ...

  2. 如何设计一个优雅健壮的Android WebView?(下)

    转:如何设计一个优雅健壮的Android WebView?(下) 前言 在上文<如何设计一个优雅健壮的Android WebView?(上)>中,笔者分析了国内WebView的现状,以及在 ...

  3. Android WebView中的JavaScript代码使用

    在WebView中使用JavaScript 如果你想要载入的页面中用了JavaScript,你必须为你的WebView使能JavaScript. 一旦使能之后,你也可以自己创建接口在你的应用和Java ...

  4. 【WebView】Android WebView中的Cookie操作

    Hybrid App(混合式应用)的开发过程中少不了与WebView的交互,在涉及到账户体系的产品中,包含了一种登录状态的传递.比如,在Native(原生)界面的登录操作,进入到Web界面时,涉及到账 ...

  5. android webview点击返回键返回上一级activity

    android webview点击返回键返回上一个activity @Override public boolean onKeyDown(int keyCode, KeyEvent event) { ...

  6. android webview点击返回键回到上一个html

    android webview点击返回键返回上一个html @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ( ...

  7. Android WebView的HTML中的select标签不起作用

    Android WebView的HTML中的select标签不起作用 经过查询资料,了解到android对html里的select标签是弹出一个原生的选择器. 问题: Webview中的select没 ...

  8. Android WebView 302斗争之旅

    一.背景 越来越多的业务接入,项目内多多少少会出现几个H5页面,只是单纯的提供WebView容器接入H5页面根本满足不了需求,他们需要登录态,需要制定协议控制Native的导航栏,或者需要JsBrid ...

  9. html与Android——webView

    1 <html> 2 <head> 3 <title>myHtml.html</title> 4 5 <meta http-equiv=" ...

随机推荐

  1. 【疯了C#】神奇的换肤(二)

    昨天参照了网上的资料练习了换肤,今天进一步的实现选择换肤 其实很简单,需要实现的功能如下点击combobox中的不同项目然后面板会自动的切换到相应的界面主题. 界面如下: 下述代码参照 “张隽永” 博 ...

  2. toggle input radio

    $(function(){ $('input[name="rad"]').click(function(){ var $radio = $(this); // if this wa ...

  3. fastadmin学习文档

    https://doc.fastadmin.net/docs/index.html 介绍 FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架. 主要特性 基于Auth ...

  4. 未定义的标示符“RECT”,引入了windows.h头文件也没有用?

    我用的是win8的vs2012,RECT应该引入什么头文件?windows.h我第一个就引入了,去windows.h里面搜也搜不到RECT这个关键字,应该引入哪个头文件呢? 真是奇怪啊,是不是还需要什 ...

  5. mysql前缀索引的应用

    在mysql中有时需要索引的列很长,如果直接应用索引会造成索引过大的问题.因此我们可以取其中一部分字段来做索引,例: 添加索引:alter table * add key (field(3));   ...

  6. NOIP模拟题 斐波那契数列

    题目大意 给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项. 题解 不难发现$2\times 10^9$之内的斐波那契数不超过$50$个 先 ...

  7. myeclipse2014中如何安装freeMarker插件(支持ftl语法高亮)

    MyEcplise2014安装Freemarker插件(支持.ftl文件) 1.下载插件:http://sourceforge.net/projects/freemarker-ide/?source= ...

  8. angular的$watch,$digest和$apply

    第一部分:$watch $watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你. $watch(watchExpression, listener, objectEqu ...

  9. 第三篇 ubuntu下,mysql 的root用户密码忘了怎么办?

    好长一段时间没有使用ubuntu了,今天进来玩玩,结果连mysql的root用户密码都忘记了.就上网找了一下,发现如下解决办法,试了一下,可行!记录在此,环境问题,是需要注意的. Ubuntu Ser ...

  10. asp.net给按钮添加删除确认

    if (!IsPostBack) { BtnDel.Attributes["onclick"] = "javascript:return window.confirm(' ...