请问微信小程序内H5页面回退如何刷新页面,或者说如何监听小程序回退按钮

发布于 2022-09-12 02:41:02 字数 59 浏览 12 评论 0

比方说点击a页面的链接跳转到b页面,点击小程序左上角的回退,回到a页面时,刷新页面重新发起首页的接口请求

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夜光 2022-09-19 02:41:02

请问是在ios端吗?
如果是的话按下面操作试试
方式一:

var isPageHide = false; 
window.addEventListener('pageshow', function () { 
    if (isPageHide) { 
        window.location.reload(); 
    } 
}); 
window.addEventListener('pagehide', function () { 
    isPageHide = true; 
}); 

方式二:

window.onpageshow = function(event){
    //event.persisted 判断浏览器是否有缓存, 有为true, 没有为false
    if (event.persisted) {  
        window.location.reload();
    }
}
空气里的味道 2022-09-19 02:41:02

小程序的webview 监听不到pageshow事件,能监听到visibilitychange 事件。

const pageCacheBackHandler = useCallback(() => {
    throttle(doSomething());
  }, [doSomething]);

const pageShowEventHandler = useCallback(
    (event) => {
      if (event && event.persisted) {
        pageCacheBackHandler();
      }
    },
    [pageCacheBackHanlder]
);

const visibilityStateChangeEventHandler = useCallback(() => {
    if (document.visibilityState == "visible") {
      pageCacheBackHandler();
    }
  }, [pageCacheBackHandler]); 

 useEffect(() => {
    window.addEventListener("pageshow", pageShowEventHandler);
    document.addEventListener(
      "visibilitychange",
      visibilityStateChangeEventHandler
    );

    return () => {
      window.removeEventListener("pageshow", pageShowEventHandler);
      document.removeEventListener(
        "visibilitychange",
        visibilityStateChangeEventHandler
      );
    };
  }, [
    pageShowEventHandler,
    visibilityStateChangeEventHandler,
  ]);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文