移动端iOS应用如何避免返回上一页时刷新内容?

2026-05-05 20:152阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计345个文字,预计阅读时间需要2分钟。

移动端iOS应用如何避免返回上一页时刷新内容?

场景:在OAS中,有A、B两个页面。点击A页面的去签名按钮进入B页(签名页面),修改签名状态(已签名);返回A页时,仍显示去签名,未调用接。

场景:在OAS中,有A,B两个页面,A页面点击 ‘去签名’,进入到 B页面(签名页面),在B页面修改了签名状态(此时为已签名);返回到A页面时,还是展示 ‘去签名’,并且不调用接口。

原因:ios 是两个webview,进入到下一个页面时,会保留之前的页面快照(相当于页面进行了缓存);在安卓系统中,共用一个webview,因此会进行替换,从而返回的时候会进行刷新。

解决办法:

移动端iOS应用如何避免返回上一页时刷新内容?

  1. 跳转签名时时 history replace,让它回不去
  2. 增加 onpageshow,onpagehide 事件刷新页面

/** * ios 解决页面返回不刷新问题 */ export function refreshPageByBack() { if (getPlatform() === "iOS") { let isPageHide = false; console.log("------> page <--------"); window.addEventListener("pageshow", function () { if (isPageHide) { console.log("------> pageshow <------"); window.location.reload(); } }); window.addEventListener("pagehide", function () { console.log("------> pagehide <------"); isPageHide = true; }); } } /** * 获取当前平台:android还是iOS */ function getPlatform() { let u = navigator.userAgent; let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //判断是否是 android终端 let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //判断是否是 iOS终端 if (isAndroid) { return "android"; } else if (isIOS) { return "iOS"; } else { return "PC"; } }

  

标签:问题

本文共计345个文字,预计阅读时间需要2分钟。

移动端iOS应用如何避免返回上一页时刷新内容?

场景:在OAS中,有A、B两个页面。点击A页面的去签名按钮进入B页(签名页面),修改签名状态(已签名);返回A页时,仍显示去签名,未调用接。

场景:在OAS中,有A,B两个页面,A页面点击 ‘去签名’,进入到 B页面(签名页面),在B页面修改了签名状态(此时为已签名);返回到A页面时,还是展示 ‘去签名’,并且不调用接口。

原因:ios 是两个webview,进入到下一个页面时,会保留之前的页面快照(相当于页面进行了缓存);在安卓系统中,共用一个webview,因此会进行替换,从而返回的时候会进行刷新。

解决办法:

移动端iOS应用如何避免返回上一页时刷新内容?

  1. 跳转签名时时 history replace,让它回不去
  2. 增加 onpageshow,onpagehide 事件刷新页面

/** * ios 解决页面返回不刷新问题 */ export function refreshPageByBack() { if (getPlatform() === "iOS") { let isPageHide = false; console.log("------> page <--------"); window.addEventListener("pageshow", function () { if (isPageHide) { console.log("------> pageshow <------"); window.location.reload(); } }); window.addEventListener("pagehide", function () { console.log("------> pagehide <------"); isPageHide = true; }); } } /** * 获取当前平台:android还是iOS */ function getPlatform() { let u = navigator.userAgent; let isAndroid = u.indexOf("Android") > -1 || u.indexOf("Adr") > -1; //判断是否是 android终端 let isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //判断是否是 iOS终端 if (isAndroid) { return "android"; } else if (isIOS) { return "iOS"; } else { return "PC"; } }

  

标签:问题