WebView返回时停留在第一层界面,重复刷新此界面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WebView返回时停留在第一层界面,重复刷新此界面相关的知识,希望对你有一定的参考价值。
参考技术A WebView详细解析:https://www.jianshu.com/p/b8526e6b7760
解决方法:
boolean canGoBack():用来确认WebView里是否还有可回退的历史记录。通常我们会在WebView里重写返回键的点击事件,通过该方法判断WebView里是否还有历史记录,若有则返回上一页。
@Override
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean
if (interesWeb.canGoBack())
interesWeb.goBack();
return true;
else
finish();
return super.onKeyDown(keyCode, event);
此方法可以实现逐级返回上层webview界面,但是如果WebView的第一个界面只有在首次进入时显示的话,就会造成后续返回时,一直停留在当前界面无法退出这个Activity界面(我的使用场景如此)
onKeyDown方法还会造成一个问题,就是在webview界面的时候,如果当前这个界面需要播放音频,你通过音量键调节音量的时候,会导致界面后退。
替换方案:
override fun onBackPressed()
if (interesWeb.canGoBackOrForward(-2))
interesWeb.goBack();
else
finish();
可以通过onBackPressed()来替代onKeyDown方法。canGoBackOrForward()替换canGoBack()方法。
boolean canGoBackOrForward(int steps):以当前的页面为起始点,用来确认WebView的历史记录是否足以后退或前进给定的步数,正数为前进,负数为后退。(详细解释可以看上面的链接: https://www.jianshu.com/p/b8526e6b7760 )
同时,在使用原生的webView进行页面加载时,需要注意相关属性的配置。
参考:
1、 android WebView 详解
2、 WebView·开车指南
3、 Android WebView 常用API参考手册
为啥功能动作直到刷新才停留,但在点击后突然消失[重复]
【中文标题】为啥功能动作直到刷新才停留,但在点击后突然消失[重复]【英文标题】:Why isn't the function action stays until refresh but suddenly vanishes after living the click [duplicate]为什么功能动作直到刷新才停留,但在点击后突然消失[重复] 【发布时间】:2022-01-23 18:08:05 【问题描述】:这里的功能正在工作,但
<p>
上的颜色不会在我离开按钮时停留更长时间,如果它是原始形式
function color()
document.getElementById("change").style.color = "#ff00ff";
HTML
<p id="change"></p>
<button onclick="color()">Change</button>
【问题讨论】:
也许您在按钮/文本上有其他侦听器,或者其他代码更改了它?因为 onclick 监听器不能像你想象的那样工作 请参考How to ask a good question并添加Minimum Reproducible Example 如果您希望保留使用 javascript 所做的更改,则需要将这些更改保存在本地存储中 按钮提交表单。那里有数十亿个骗子 点击提交按钮会提交一个表单,该表单会在 JS 完成对 DOM 的修改后立即加载一个新页面。 【参考方案1】:在我的工作完美,但试试这个
document.getElementById('button_id').addEventListener('click', color)
【讨论】:
如果您无法重现问题,并且不了解问题的原因,那么将代码扔在墙上希望它坚持下去并不能得到一个好的答案。跨度>以上是关于WebView返回时停留在第一层界面,重复刷新此界面的主要内容,如果未能解决你的问题,请参考以下文章
Ajax 表单提交在第一次提交时返回错误,但在第二次单击时提交