Android WebView由于重定向造成的goBack()无效的问题解决

当加载重定向Url时,webView不能一级一级goback返回上一页面的问题

   override fun shouldOverrideUrlLoading(webView: WebView, url: String): Boolean {//网页在webView中打开webView.loadUrl(url)return true}override fun onPageStarted(webView: WebView?, s: String?, bitmap: Bitmap?) {super.onPageStarted(webView, s, bitmap)}override fun onPageFinished(webView: WebView, s: String) {super.onPageFinished(webView, s)}

override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {if (keyCode == KeyEvent.KEYCODE_BACK && mBinding.mWebViewMall.canGoBack()) {mBinding.mWebViewMall.settings.cacheMode = WebSettings.LOAD_CACHE_ELSE_NETWORKmBinding.mWebViewMall.goBack() //返回上个页面return true} else if (keyCode == KeyEvent.KEYCODE_BACK) {destroy()finish()}return super.onKeyDown(keyCode, event) //退出整个应用程序}

当加载重定向的URL时,点击返回按键时webview.canGoBack()判断为true,即就调用webview.goBack()方法,这时shouldOverrideUrlLoading()方法中return true,表示是程序自己来处理goBack()后的URL加载,当加载重定向URL会变成一个死循环,不会正常退出WebView。

  override fun shouldOverrideUrlLoading(webView: WebView, url: String): Boolean {//网页在webView中打开
//                webView.loadUrl(url)//return true,// return false表示就会交给WebView来进行处理,WebView内部识别出重定向URL并进行finish操作return false}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/44946.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jtti:在SQL数据库中怎么实现数据的跨平台传输?

在SQL数据库中实现数据的跨平台传输可以通过以下几种常用的方法。这些方法适用于不同的数据库系统,并可以满足不同的需求和环境。 1. 使用数据库备份和恢复 MySQL 备份数据库: mysqldump -u [username] -p [database_name] > [backup_file].sql 恢复数…

Eel 入门:实现 Python 程序的 Web 前端界面

Eel 入门:实现 Python 程序的 Web 前端界面 Eel 是一个 Python 库,它允许 Python 程序通过简单的 API 与网页进行交互。它使用 WebSocket 协议来实现 Python 后端和 JavaScript 前端之间的实时通信。下面是关于 Eel 的用法、通信原理和使用场景的一篇博…

float、double

按照这个规定,单精度浮点数(float)这个数据类型所占内存大小为4个字节,也就是32位,所以单精度浮点数也叫32位浮点数,它在内存或硬盘中要占用32个比特。 单精度浮点数的尾数部分用23位存储,加上默…

链接库是什么

所谓链接库,从字面上理解,指的是程序在“链接”阶段使用的代码库。 “链接”是源程序转换成可执行程序必须经历的步骤之一,考虑到一些初学者对程序的运行过程还不了解,接下来先解释一下“链接”的含义,再系统地讲解链接…

09磁盘管理

一、磁盘管理 1.磁盘基础知识 (1)磁盘接口类型 个人电脑, 硬盘接口分为IDE类型和SATA类型 服务器版分为SCSI类型和SAS类型 (2)磁盘命名方式 windows中硬盘命名方式是c,d,e盘 linux中硬盘命名方式为 系统…

HTML+CSS+JS 实现3D风吹草动效果(B站视频)

效果&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>3D effect&…

开发指南043-自定义注解

现代Java编程大量使用注解&#xff0c;可以很方便的简化编程&#xff0c;提高编程效率。作为一个平台&#xff0c;也定义了自己的注解。过程如下&#xff1a; 第一步新建java文件&#xff0c;非常类似接口类&#xff1a; import java.lang.annotation.*; public interface …

[迫真保姆级教程]在Windows上编译可用的Tesseract OCR in C++ 并部署在Visual Studio与Qt6上

目录 前言 阅前提示 导言 使用基于vcpkg的&#xff0c;于msvc19编译器编译的Tessereact OCR动态库 使用vcpkg辅助我们的编译 正文 使用msys2环境下的&#xff0c;使用mingw64编译器编译的Tessereact OCR动态库 什么是msys2 安装前&#xff0c;我们也许。。。 [Option]…

网络钓鱼中的高级同形异义:网络安全的新威胁

网络安全正面临一个潜在的新威胁&#xff1a;在网络钓鱼攻击中使用同形异义词。 这篇调查文章探讨了同形异义现象如何在各种类型的网络钓鱼攻击中使用、其背后的技术。 对这种恶意行为的研究以及高级语言模型 (LLM) 如何帮助加速同形异形现象的研究。 什么是同形异义&#xf…

dxf数据结构

DXF&#xff08;Drawing Exchange Format&#xff0c;绘图交换格式&#xff09;是Autodesk公司开发的一种CAD&#xff08;计算机辅助设计&#xff09;文件格式&#xff0c;用于实现AutoCAD与其他软件之间的CAD数据交换。DXF格式文件是一种开放的矢量数据格式&#xff0c;具有多…

怎么办?我的C盘又爆红了!别慌!博主手把手带你管理你的C盘空间~

怎么办&#xff1f;我的C盘又爆红了&#xff01;别慌&#xff01;博主手把手带你管理你的C盘空间~ 文章目录 怎么办&#xff1f;我的C盘又爆红了&#xff01;别慌&#xff01;博主手把手带你管理你的C盘空间~0. 在开始清理之前1. 推荐执行的操作1.1 清理系统缓存文件1.2 磁盘清…

MySQL和Redis更新一致性问题

1. 先更新数据库&#xff0c;再更新缓存 适用场景&#xff1a;适用于对数据一致性要求不是特别高&#xff0c;且缓存更新失败对 系统影响较小的场景。例如&#xff0c;某些非关键数据的缓存更新。 风险&#xff1a;如果缓存更新失败&#xff0c;会导致数据库和缓存数据不一致。…

[RK3566-Android11] 使用iPhone14/15出现的蓝牙断开重连无声音问题

问题描述 RK3566使用的RTL8822CS模块&#xff0c;打了a2dpsink 蓝牙音响补丁&#xff0c;蓝牙用作播放歌曲和歌词显示。 测试发现使用Iphone14/15在开机之后10分钟内连接播放再断开&#xff0c;连接播放再断开&#xff0c;重复三四次&#xff0c;蓝牙就会无声音。使用iphone11…

淘宝详情数据获取的 API 之旅:突破与创新

在电商世界的广袤星空中&#xff0c;淘宝犹如一颗璀璨的巨星&#xff0c;其商品详情数据宛如神秘的宝藏&#xff0c;吸引着无数探索者。而 API 接口&#xff0c;则是我们开启这宝藏之门的神奇钥匙。 一、淘宝详情数据&#xff1a;商业洞察的密码 淘宝的商品详情数据&#xff0…

实战精选 | 如何在一台 Linux AI PC 上高效运行 OpenVINO™

点击蓝字 关注我们 作者&#xff1a;Adrian Boguszewski&#xff0c;英特尔 AI 软件布道师 武卓博士&#xff0c;英特尔 AI 软件布道师 什么是 AI PC&#xff0c;为什么它有一个特殊的名字&#xff1f; AI PC 是时下 PC 领域的一个热门话题。与普通 PC 不同&#xff0c;AI PC 配…

AI绘画Stable Diffusion超现实风格电商场景,五个电商专用LoRA分享,制作电商场景变现教程!

前言 本次教程将使用AI绘画工具 Stable Diffusion 进行讲解&#xff0c;如还未安装SD的小伙伴可以看我往期入门教程2024最新超强AI绘画Stable Diffusion整合包安装教程&#xff0c;一键教你本地部署&#xff01;&#xff0c;安装包请扫描免费获取哦https://blog.csdn.net/z199…

如何利用python进行统计显著性检验

在统计学中,显著性差异检验是用来决定两组或多组数据之间是否存在统计学上的差异。若存在显著性差异,则说明数据集之间不是来自于同一个分布。在Python中,可以使用多种方法来进行显著性差异检验,如t检验、KS检验、Wilcoxon符号秩检验等。下面将详细介绍如何使用Python来判断…

初阶数据结构(顺序表的实现)

1. 线性表 线性表是&#xff08;linear list&#xff09;n个具有相同特性的数据元素的有限队列。线性表是一种在实际广泛应用的的数据结构&#xff0c;常见的线性表&#xff1a;顺序表&#xff0c;链表&#xff0c;栈&#xff0c;队列&#xff0c;字符串。。。 线性表在逻辑结…

招采全流程电子化优势及重要功能环节(数智化招采系统)

招投标全流程电子化&#xff0c;是加速招标采购领域数字化转型、创新招标采购交易机制的重要举措。它在构建高效规范、公平竞争、充分开放的大市场环境中起着至关重要的作用。 招采电子化历史沿革 2013年2月&#xff0c;国家发展改革委等八部门发布了《电子招标投标办法》&am…

【git命令大全】

一个练习git命令的平台&#xff1a;Learn Git Branching 1. git status -s --查看仓库状态 2. git add 文件名 --添加需要提交的文件名&#xff08;加路径--参考git status 打印出来的文件路径&#xff09; 3. git stash -u -k --忽略其他文件&#xff0c;把现修改的隐藏…