VUE框架下的HTML5页面,vue-router,当第一次进入页面,且未带有路由信息时,按路由配置自动跳到指定页面。
这个跳转动作,会导致页面
但路由跳转完成后,刷新一次页面按钮即可恢复。
做了以下场景验证:
- vue-router: hash路由,跳转发生hashchange,url变化,必现。
- vue-router: history路由,replaceState进行queryParams的encode,url变化,必现。
- react-router: hash路由,同vue-router:hash,必现。
- window.location.href重定向,必现。
整体看起来,只要url发生变化,
请问是什么原因?
谢谢,盼复。
录屏:1、从链接地址https://oss.suning.com/vss/activity/wximg/magic/demo/test-wx-weapp.html?v=4进入,wx.config提示OK,但open-type按钮不显示。2、刷新页面,wx.config提示OK,open-type按钮才会显示。
IOS微信会缓存首次页面地址,如果是单页面,使用vuerouter去更改路由的话,不会刷新页面。微信缓存的地址就不会变,这时候去做wxconfig时候的提交url和访问url就会不一致导致注册失败。
从这个原理上要解决方案就2个方向,要么针对用了<wx-open-launch-weapp>的页面,不要使用vuerouter跳转页面,可以使用window.location.href这种刷新页面的方案去跳转。或者可以尝试下,在IOS里,注册wxconfig时提交的URL不要是当前的路由,而是进入的第一个页面的路由。
请具体描述问题出现的流程,并提供能复现问题的链接
辛苦看下这个demo地址。
第一次打开时,内部有意做了一个hash跳转,url变为"...?v=4#somehash"。这个跳转动作,会导致weapp内的button元素不显示。然后再刷新一下页面即会显示button按钮。