react-keeper
react-keeper copied to clipboard
使用React-keeper后IOS微信浏览器分享的页面始终是第一次打开站点的页面【其他浏览器正常】
发现一个问题。我使用了react-keeper后。页面跳转使用的是Control.go。 当我打开我的站点后。跳转到其他页面。通过IOS微信右上角分享出去后。外面打开分享出去的页面始终是我第一次打开这个站点的页面。但是在android是正常的。当我把站点切换成react-router后又正常了。是不是因为react-keeper的缓存机制。实际上路由切换没有刷新页面。导致微信浏览器以为还是之前的页面。所以分享出去的页面都是第一次打开站点的页面。
@vifird 你好这个问题。我跟了一哈源码。可能是push方法有问题。我看了一哈你使用的是vhistory。我将reack-keeper的里面的Router.js的 (0, _HistoryControl.setHistory)(_this.props.history); 代码前面重新引入了history库。然后重置了this.props.history的push方法。微信分享就OK了。你在看一哈了。我不知道我的修复方式是否正确。
` //解决微信分享的bug var createHashHistory = require('history/createHashHistory'); _this.props.history.push = createHashHistory.default().push; (0, _HistoryControl.setHistory)(_this.props.history);
`
@FourLeafClover 可以贴一下完整的页面URL,考虑是因为微信在URL中加入参数(?a=b)
,加入位置是#
之前,导致hash失效。
@vifird
下面我已经修改过React-keeper代码的链接。IOS微信分享是正常的 http://www.intelligenttech.top/#/
下面这个是维修改过react-keeper代码的链接。IOS微信分享出去的页面是第一次打开站点的页面。 http://www.intelligenttech.top/react/cnode/#/
譬如复制下面的链接到微信打开后进入其他页面分享出去的还是下面这页面 http://www.intelligenttech.top/react/cnode/#/topic/5ae140407b0e8dc508cca7cc
安卓这个我处理过这个问题 是因为#的问题,所以你要把分享出去的参数在#前面拼接一下,在进入到你项目中的时候在处理,判断有没有去进行跳转操作 @FourLeafClover