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 表单提交在第一次提交时返回错误,但在第二次单击时提交

为啥功能动作直到刷新才停留,但在点击后突然消失[重复]

JS leetcode 猜数字 题解分析,我以为题目在第八层我在第一层,其实我在第三层题目在第一层

Flutter页面状态在返回时不刷新

vue实现返回上一页面,页面停留在原来位置,不刷新

利用cookie实现iframe刷新时停留在当前页面