WebView shouldOverrideUrlLoading 方法使用不当导致 服务端获取父url 失败
来源:互联网 发布:小米网络电话费流量吗 编辑:程序博客网 时间:2024/05/20 16:12
前言
最近在使用webview 开发web app 的时候,出现了一个奇怪的问题 就是,就是后台获取不到 url 的父级url 。
经过一番百度 发现其他人也遇到过这种问题(这个帖子现在 我已经找不到了)。
废话不多说 ,我来说一下 为什么会出现 这种问题呢?
原因就是 view.loadUrl(url) 会造成url 重定向。
错误的使用代码示例:
@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {//购物车if (url.contains(Constants.SHOPCART)) {Intent intent = new Intent();intent.putExtra("link", FlagEnum.SHOP_CART);intent.setAction(Constants.MAIN_ACTION);context.sendBroadcast(intent);}//附近商家else if (url.contains("/mobileAPP/shop/shoplist.aspx")) {// Intent intent = new Intent();// intent.putExtra("link", FlagEnum.NEARBYSHOP);// intent.putExtra("url", url);// intent.setAction(Constants.MAIN_ACTION);// context.sendBroadcast(intent);view.loadUrl(url + "&" + nameValueUtils.toString());}else {view.loadUrl(url);}return true;}
在web app 中使用上述范例的代码就会造成url 重定向,导致url没有父级url。
解决方法
正确的使用代码示例
@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {//购物车if (url.contains(Constants.SHOPCART)) {Intent intent = new Intent();intent.putExtra("link", FlagEnum.SHOP_CART);intent.setAction(Constants.MAIN_ACTION);context.sendBroadcast(intent);return true;}//附近商家else if (url.contains("/mobileAPP/shop/shoplist.aspx")) {// Intent intent = new Intent();// intent.putExtra("link", FlagEnum.NEARBYSHOP);// intent.putExtra("url", url);// intent.setAction(Constants.MAIN_ACTION);// context.sendBroadcast(intent);view.loadUrl(url + "&" + nameValueUtils.toString());return true;}else {//view.loadUrl(url);return super.shouldOverrideUrlLoading(view, url);}}
理解 shouldOverrideUrlLoading 请参考 http://www.codes51.com/article/detail_101733.html
0 0
- WebView shouldOverrideUrlLoading 方法使用不当导致 服务端获取父url 失败
- WebView shouldOverrideUrlLoading 方法使用
- WebView中shouldOverrideUrlLoading和onPageStarted方法的区别
- android webview中shouldOverrideUrlLoading方法的返回值问题
- JS调Native:(1)拦截url:WebViewClient.shouldOverrideUrlLoading (2)绑定Java对象:WebView.addJavascriptInterface
- android webview对shouldOverrideUrlLoading的理解,对于重定向的url
- ArrayList使用不当导致ListActivity失去响应
- simple_html_dom使用不当导致的内存泄漏
- TransitionDrawable使用不当导致内存泄露
- mysql limit 使用不当导致的bug
- Messenger使用不当导致的内存泄漏
- Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析
- Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析
- curl设置不当导致php抓取网页失败
- LD_LIBRARY_PATH设置不当导致的自动安装失败
- WebView shouldOverrideUrlLoading 不触发原因
- form 的 encoding设置不当导致在jsp中使用request.getParametre(paraName)无法获取表单提交的值
- 使用WebView时的一些坑(图片拼接、不显示、shouldOverrideUrlLoading正确用法)
- C++对字符串的小小加密与解密
- VirtualBox安装Solaris 10之共享文件夹
- 一款android平台测试电量的app————PowerTutor
- Uri详解之——Uri结构与代码提取
- 冒泡,选择,快排,归并
- WebView shouldOverrideUrlLoading 方法使用不当导致 服务端获取父url 失败
- java代理模式
- 截屏+高斯
- Python网络数据采集9(译者:哈雷)
- C语言使用正则表达式
- UVA10603 dijkstra最短路
- 本地选择图库照片,保存在本地新建文件夹
- 方格取数 纪中2541 类dp
- [2016JZSC Part 2] 【NOIP2016提高A组模拟8.11】总结