微信小程序嵌套webview页面条件控制是否返回小程序

微信小程序嵌套webview页面条件控制是否返回小程序,第1张

在微信小程序中,可颂态以使用 webview 嵌套 web 页面,有些时候在 web 页面填写了表单没有提交,当用户点击左上角小程序的返回时,希望可以d框提示用户还有未保存内容,是否确定返回,根据用户选择之后在确定耐培是否返回。

由于返回图标是微信小程序自带的,因此我们无法通过 web 页面的路由离开钩子(如:vue中beforeRouterLeave钩子函数)来控制页面是否关闭,因此想要在离开页面时在 web 页面进行逻辑控制是有难度的。

使用浏览器的 popstate 事件来禁昌樱唯止页面跳转。

小程序开发中遇到的问题:小程序中嵌套敬闭了一个webview页面,webview页面中有静默授权(A1页面静默授权后重定向到A2页面),点小程序原生的返回按钮会返回到A1页面,然后页面就会反复静默授权

解决方案:通过 history.pushState 添加历史记录名目, history.onpopstate 监听历史记录条目发生变化时,调用小程序 APIwx.navigateBack

刚开始想的解决办法是用localStorage,跳转到A2时存储一个值,返回到A1时获取这个值,如果有值就清除这个值并且回退到小程序页面。听起来似乎也可行,但小程序的缓存和微信袭慎的缓存是同步的,如果在微信环境中直接访问A1页面,重定向到A2会存值,如果直接关闭页面,不会被清除,那么在小程序中访问时就直接回退了。

文章转自微信社区

解决小程亮禅裂序中webview页面多层history返回问题


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12323963.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存