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

解决小程序中webview页面多层history返回问题,第1张

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

解决方案:通过 historypushState 添加历史记录名目, historyonpopstate 监听历史记录条目发生变化时,调用小程序 APIwxnavigateBack

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

文章转自微信社区

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

在微信小程序的客户端中,开发者可以关闭窗口顶部的左上角的WebView按钮,来阻止用户在与小程序交互时点击此按钮。可以在 web-view 组件的 onUnload 属性中添加 preventDefault 方法,来禁止窗口右上角按钮的默认行为。

应用场景:小程序webview加载一个h5广告页,倒计时结束或者点击跳过按钮,跳转指定小程序某个页面(如首页)

第一步:H5页面引入小程序微信sdk

第二步:

第三步:小程序新建一个页面调用webview组件(暂时用ip地址测试,上线请配置业务域名等信息)

h5跳转小程序就是这么简单,但有一点要注意,那就是h5页面跳转小程序页面路径得是相对路径。

错误示例:

正确示例:

PS:作为一个小白,被这块坑了一天才发现问题所在,只有相对路径才会跳转成功,绝对路径是不会跳转的。

首先,对应的H5页面需要集成微信的JS SDK集成文档点击链接: 微信的JS SDK

或者 通过发送的数据判断进行跳转处理

附上微信官方社区的交流说明,可能最接近解决方案,仅供各位参考,

官方社区Issue

后续,如果在小程序开发中, 遇到了其他的问题,会持续记录在此哦~

如果你的小程序使用 Webview 来加载网页,那么网页上的数据是不能直接更改小程序本身数据的。在这种情况下,可以通过将小程序和网页数据集成,然后通过后端 API 来读取并更新小程序数据。

以上就是关于解决小程序中webview页面多层history返回问题全部的内容,包括:解决小程序中webview页面多层history返回问题、小程序左上角webview关闭、webview 嵌入 h5 页面互相通信等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/9711421.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存