-
-
Notifications
You must be signed in to change notification settings - Fork 5k
关于html5-History模式在微信浏览器内的问题 #481
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
同样遇到,坑 |
问题解决了。分享下解决办法:vue-router切换的时候 都是操作的浏览器历史记录,真实URL为第一次刚进入时的URL。每次路由变化时都重新请求下签名,签名的URL 用第一次进入时的URL。 |
@yangzonglong 感谢,试了试发现确实是这样。 |
安卓微信,history模式下,签名使用刚进入页面时的url,config成功了,但是此时只要路由跳转过一次,微信右上角的按钮就都没有了,只剩下收藏,你的项目遇到这个问题了吗?ps:hash模式正常 |
出现过一次这个问题,几分钟后自己就好了,具体原因我也不清楚,后来就再也没出现 |
@yangzonglong 感谢回复,那么现在线上的项目就是使用history模式的?可以分享一下访问地址吗 |
订阅号 葡萄纬度Lat 葡萄+ 》葡萄商城 |
感谢分享,不过我发现葡萄商城点到某个产品详情页一样没有分享按钮了,也许是我使用的安卓版微信的缘故,最终决定还是用hash模式了 |
安卓下面确实好烦,我看微信的开发者文档是说了支持 pushstate 方式的 url 的,但是还是辣么多问题。 |
碰到过hash模式下微信支付不支持,而history模式jssdk功能有问题,最后改成用abstract模式了。 |
用的history模式,微信浏览器复制链接功能会出现复制出来的链接是上一次的链接....这个问题怎么解决啊 |
微信授权重定向url上面带的/#!/会导致重定向失败···· |
@yangzonglong 确定是可以?为什么我看是不行的?我用微信的调试工作看,签名失败的啊 |
@yangzonglong 微信文档里有那么一句:
PS: 会在 Android6.2 中修...修复... |
@yangzonglong 你的方法在当时以及接下来的几个月内都是OK的(其实还是蛮hack的,谁叫安卓微信对history支持不友好- -) router.afterEach(() => {
Promise.resolve()
.then(() => {
getSign({
url: global.location.href
})
})
}) 对于微信 iOS版无影响,原来的逻辑继续可用 |
@stoneChen 我是通过你这个方法解决,Android用这个逻辑,IOS用前面的逻辑 |
@commyfriend 你的这个问题,应该是 微信支付要求至少二级目录 引起的 |
@yangzonglong 具体代码怎么写阿,能不能发出来参考一下 |
@zhangwei900808 我会在微信进入的第一个页面记录下来(比如: 不过微信说 Android 6.2 以后会修复该问题,而且 iOS 下也不需要这样做,所以你可能还需要判断一下系统进行适配。 |
mark,通过上面的方法解决了大部分的问题,等待能有更完善的办法! |
针对微信 6.5.3 及以后的版本(WebkitWebview)History 模式下的解决方案
提醒
|
@hiyali iOS下支付的config 是不是无解?当首次进入的页面不是支付授权目录,即使在实际支付页面设置 |
@sqrtqiezi 有解,就是按照以下规则做就可以。
|
有没有遇到过 微信分享配置,在vue的router下,就首页配置不成功,分享出去还是默认的首页,页面上自己抓起的缩略图, 别的路由下分享出去都是正常的。有遇到过这种情况的吗? |
history模式里,我按照上面的做法,android上是可以了,在ios上分享还是各种问题啊(跳路由以后基本不行了)
上面的这段代码我也是在afterEach的钩子函数里执行的
wxShare这个函数里会有第一段代码,求大神指导 @hiyali |
@hiyali 我目前IOS是按照第一次进入页面url给每个页面做wxconfig的,手机上测试是校验通过的,但是分享出来的数据不是wxshare里面配置的,还是微信默认的,而且默认的是首页。 |
经验验证,有两种解决办法:1.改用hash模式。2.router-link改为a标签(也就是每个页面都是向服务器重新请求index)。 |
@benbenye 这就不是 history 模式讨论的问题了。 |
@webkonglong 我遇到你这个问题了。。请问有没有解决? |
@MorePainMoreGain 谢谢 不过我遇到的是iOS在进入之后 分享的参数不正确 跳转到别的页面则正常 再回到首页也正常了。。。 |
@microyulive ios下的单页应用只需要配置一次就够了,看你的描述像是每页都进行了分享配置(或者我理解错了) @MorePainMoreGain 其实我也不太特别明白,看了你写的博客,感觉解释的有点牵强,我也尝试去解释其中的道理,奈何能力有限;之前微信开发文档说6.0.2之后会修复Android端单页应用配置问题,猜想是这里的问题?自己尝试了看android端源码,还是奈何能力有限... 大家集思广益吧,我也是收益此贴才少爬了很多坑 我简单写了微信分享的注意事项,有需要的看一下,说不定那句话就解决了你的问题,当初我也是这么爬过来的(泪奔。。。。) |
@yongheng2016 好滴 谢谢 我再排查下 |
现在我这里遇到一个很诡异的问题的就是我们一个SPA进入应用的时候立马进行了微信授权后再返回应用。整个授权就是客户端的操作,不牵扯后端。但分享的自定义就是会失败,但config会成功,自定义按钮会有效。如果把授权去掉,就一切正常。请问有什么思路吗 |
@fbsstar
如果你确定在落地页传给了后端完整的url(如上 |
@fbsstar 老哥我也遇到了一个一模一样的需求,也出现了一模一样的问题,请你是怎么解决的? @yongheng2016 确实是拿这个链接去后端请求签名,返回的签名也没有问题,用校验工具校验过了。 |
经过爬坑后总结了一下 history模式下微信授权和分享 |
有人遇到在IOS微信里,复制链接 出来的一直是首次进入的地址吗? |
@xmskying 进入需要复制的链接页面时reload刷新微信浏览器缓存 |
@inmWang 可否详细说下? 似乎iOS上单页面应用都会遇到这个问题:进入次级页面后,微信右上角菜单里,复制链接,得到的是首次进入页面的URL。 |
@Hao-Wu 单页面和复制链接暂时不能兼得,等微信那边修复吧。 |
@inmWang 用window.location.href跳转就可以,也还是说单页面和复制链接不能同时满足。 |
@inmWang 是 location.reload()吗,请问需要放到哪里 |
@brightchild 在beforemount时 location.replace |
复制链接地址还是落地页解决办法 可以参考这个文章中的reload方法,在需要的地方刷新页面 |
@wangbei8855 请问兄台,最后如何解决的啊? |
遇到个问题,如下: |
iOS 使用落地页(第一次打开的页面链接) |
老哥这个问题解决了吗 ,我特么也遇到这个问题了,不授权一切正常,授权(暂时试的是静默授权)之后,就变得很诡异,分享有时可用有时不可用,很诡异 |
放弃 @inmWang 的方法了。第一次点有效,返回去再点什么都不能点了。改用URL参数法强行解决。 |
你们确定使用History没有支付目录问题?支付目录只能5个。每次只记录了第一次进入的页面,这就导致了所有页面都会产生支付的可能,而支付目录只有5个。按这种方式只有一种解决方案:就是把所有页面都放在同一个目录下!!!这TM是个巨坑。。。。。。垃圾微信两年了还不修复这个问题 |
支付页面同一个就行,跳转到支付页面用window.location.href |
在开发微信中使用的页面的时候,使用微信的jssdk功能,发现一点问题
在hash模式下,wx.config()可以正常工作,但在history模式下,安卓手机中无法正常config,会提示invalid signature的错误,IOS下则是正常的,非常困扰。查了微信的文档说安卓手机可能是pushState引起的。
@everyone give me some help...
The text was updated successfully, but these errors were encountered: