前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WebView中shouldOverrideUrlLoading的调用时机

WebView中shouldOverrideUrlLoading的调用时机

作者头像
乱码三千
发布于 2021-07-29 06:53:05
发布于 2021-07-29 06:53:05
2.8K00
代码可运行
举报
文章被收录于专栏:乱码三千乱码三千
运行总次数:0
代码可运行

shouldOverrideUrlLoading一定在onPageStarted之前调用吗?答案是:不一定。

当我们在shouldOverrideUrlLoading方法中通过view.loadUrl加 return false;的方式加载一个页面时:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return false;
}

则回调执行顺序如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                        onPageStarted(http://www.taobao.com)
                     -> onPageStarted(https://www.taobao.com)
                     -> shouldOverrideUrlLoading(https://www.taobao.com)
                     -> onPageFinished(https://www.taobao.com)

如果改成view.loadUrl(url);加return true; 则回调执行顺序如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                        onPageStarted(http://www.taobao.com)
                    -> onPageStarted(https://www.taobao.com)
                    -> shouldOverrideUrlLoading(https://www.taobao.com)
                    -> onPageFinished(https://www.taobao.com)
                    -> onPageStarted(https://www.taobao.com)
                    -> onPageFinished(https://www.taobao.com)

可以发现当返回false时,onPageFinished会少执行一次,这样无法保证标识重定向flag的准确性

如果是点击页面,触发<link>标签,则对应的回调顺序如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
                       shouldOverrideUrlLoading(https://www.taobao.com)
                   -> onPageStarted(https://www.taobao.com)
                   -> onPageFinished(https://www.taobao.com)

总结

  • 当我们通过loadUrl的方式加载一个页面时,先调用onPageStarted再调用shouldOverrideUrlLoading。
  • 当我们点击页面中的一个link时,先调用shouldOverrideUrlLoading再调用onPageStarted。
  • shouldOverrideUrlLoading不一定每次都被调用,没有重定向不调用,reload不调用,返回上一页面不调用。。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乱码三千 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
idea全局搜索快捷键修改_idea整个项目替换
默认是:Ctrl+Shift+R 如果不是继续看下面: 不是可能是你不是使用的idea默认的快捷键,或者之前更改过快捷键, 打开Setting(Ctrl+Alt+S)——>keymap——>搜索replace in path
全栈程序员站长
2022/11/10
1.1K0
idea全局搜索快捷键修改_idea整个项目替换
idea在类中搜索方法的快捷键_idea控制台搜索快捷键
Ctrl+Alt+L 格式e69da5e887aa62616964757a686964616f31333365646234化代码
全栈程序员站长
2022/11/07
1.6K0
idea快速查找快捷键_idea快捷键汇总
https://www.cnblogs.com/pretty-sunshine/p/9950541.html
全栈程序员站长
2022/11/01
1.1K0
IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)
我们用Eclipse或者IntelliJ IDEA编程,有时候需要将整个项目的某个字符串替换成其他的。
全栈程序员站长
2022/11/17
3K0
IntelliJ IDEA中怎么全局搜索替换(整个项目)(Eclipse)
idea 查找与替换「建议收藏」
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/11
2.5K0
idea 查找与替换「建议收藏」
Mathtype公式编辑器常用快捷键
Ctrl+1(100%);Ctrl+2(200%);Ctrl+4(400%);Ctrl+8(800%)。
全栈程序员站长
2022/11/15
1.3K0
idea中选中一行的快捷键_idea撤销快捷键恢复
之前前端开发一直使用VSCode,常用快捷键删除一行或者当前选中的几行代码,使用idea的时候发现快捷键并不相同,查看发现idea的快捷是:Ctrl + Y,比手动删除代码方便很多。
全栈程序员站长
2022/10/04
1.2K0
idea中选中一行的快捷键_idea撤销快捷键恢复
idea中撤销操作_eclipse反撤销快捷键
在刚使用idea的小伙伴都会遇到这样一个问题就是,习惯性地使用ctrl+y进行反撤销。但是却把该行代码删除了,哈哈哈 :D. 这谁都遇到过的。因为在idea中ctrl+y就是删除该行的快捷键,那么在idea中的反撤销快捷键是什么呢?其实是,ctrl+shift+z。但是可能你用了还是没效果,那是因为你PC上别的软件占用了该快捷键。我知道的就有搜狗输入会占用该快捷键~那我们取消搜狗输入法的这个快捷键设置就可以了。
全栈程序员站长
2022/11/11
1.7K0
idea中撤销操作_eclipse反撤销快捷键
pycharm使用技巧及常用快捷键_程序运行快捷键
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/09/28
6790
idea格式化代码快捷键失效_idea格式化代码快捷键无效
这是idea 快捷键设置。 Ctrl+Alt+L 快捷键冲突 只需要修改其中一个就行。或者退出网易云。写代码听什么歌呀
全栈程序员站长
2022/11/07
1.7K0
idea格式化代码快捷键失效_idea格式化代码快捷键无效
idea设置快捷键为eclipse_idea设置上一步下一步快捷键
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
3980
idea设置快捷键为eclipse_idea设置上一步下一步快捷键
python pycharm 调试(debug)快捷键「建议收藏」
1.show execution point (alt+F10) 显示当前所有断点 2.step over(F6) 单步调试。 若函数A内存在子函数a时,不会进入子函数a内执行单步调试,而是把子函数a当作一个整体,一步执行 3.step into(F5) 单步调试。 若函数A内存在子函数a时,会进入子函数a内执行单步调试。 4.step into my code(Alt + Shift +F7) 执行下一行但忽略libraries(导入库的语句) 5.force step into(Alt + Shift +F7) 执行下一行忽略lib和构造对象等 6.step out(F7)当目前执行在子函数a中时,选择该调试操作可以直接跳出子函数a,而不用继续执行子函数a中的剩余代码。并返回上一层函数。 7.run to cursor(Ctrl+R) 直接跳到下一个断
全栈程序员站长
2022/11/17
1.7K0
idea的快捷键设置_idea设置eclipse快捷键
File-setting-keymap下拉框选成eclipse 由于其中一些快捷键和计算机快捷键冲突,需要自行设置 查询快捷键方式1:
全栈程序员站长
2022/11/05
1.4K0
idea的快捷键设置_idea设置eclipse快捷键
eclipsehtml自动补全快捷键_idea补全代码的快捷键
在Eclipse中,从Window -> preferences -> Java -> Editor -> Content assist -> Auto-Activation下,我们可以在”.”号后面加入我们需要自动提示的首字幕,比如”abc”,可以把26个字母的大小写全部加上
全栈程序员站长
2022/11/04
6820
Idea 删除当前一行的快捷键
使用eclipse,有时候出现多个空行时,习惯使用快捷键:Ctrl + D,删除当前一行。 最近使用idea开发,发现手动删除空行,很麻烦,特意查了一下,发现是快捷键:Ctrl + Y。如下图所示:
全栈程序员站长
2022/10/29
5K0
Idea 删除当前一行的快捷键
360常用快捷键_10个常用的快捷键
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/17
9970
idea设置删除一行快捷键_删除空白页快捷键
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/29
1.6K0
idea设置删除一行快捷键_删除空白页快捷键
idea方法注解快捷键_idea生成方法的快捷键
对于实体Bean类,比较多繁杂的重复代码内容, 比如说get/set方法和toString方法,对于这些idea都是有快捷键的,介绍一下toString方法的自动生成:
全栈程序员站长
2022/11/16
4450
idea方法注解快捷键_idea生成方法的快捷键
idea如何查找替换_wps表格怎么查找替换文字
在平时敲代码的时候经常碰到,咦,这个变量名好像不太合适,但又写了好多这时候可以怎么办呢? Pycharm/Idea里面给我们准备了替换功能
全栈程序员站长
2022/09/28
3.3K0
idea如何查找替换_wps表格怎么查找替换文字
idea 删除一行快捷键_excel删除一行快捷键
以前习惯用eclipse,但是现在用了IDEA很不习惯,也不知道IDEA的快捷开发键。
全栈程序员站长
2022/10/04
2.3K0
idea 删除一行快捷键_excel删除一行快捷键
推荐阅读
相关推荐
idea全局搜索快捷键修改_idea整个项目替换
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档