解决vue|解决vue hash模式下微信分享#号问题
在微信中分享到朋友圈或好友时,分享出去的路由被破坏,打开分享的链接,路由中的“#”会被去掉并追加?fromTimeline之类的后缀参数,这就造成了分享出去的链接只能进入首页,无法正常跳转到其他路由。例如
这是正常跳转后的路径:http://web.ehoo100.com/static/matrix/#/teamwork?postId=4079具体解决代码如下:
这是从分享页跳转后的路径:http://web.ehoo100.com/static/matrix/?from=groupmessage#/teamwork?postId=4079
非常明显,如果根据问号的索引去获取当前postId,获取不到。并且在分享时也会显示出文章的地址。
// 微信分享的数据
var shareData = https://www.it610.com/article/{"title": "《酒暖回忆思念瘦》", // 分享标题
"desc": "听梁静茹唱着,离开旧爱,像坐慢车,挥别错的才能和对的相拥。",
"link": (window.location.href).replace(window.location.search,''),//`http://web.ehoo100.com/static/matrix/#/teamwork?postId=${this.postId}`, // 分享链接
"imgUrl": "http://static.ehoo100.com/uftp/logo.png",// 分享图标
success: function (res) {
},
cancel: function (res) {
},
fail: function (res) {
}
};
wx.ready(function () {
wx.onMenuShareTimeline(shareData);
wx.onMenuShareAppMessage(shareData);
wx.onMenuShareQQ(shareData);
wx.onMenuShareWeibo(shareData);
});
注意:
由于微信会在hash #号前添加字段,就需要解决我们手动拼接这个分享链接。两种方式1.最佳实现方式:http://web.ehoo100.com/static/matrix/#/teamwork?postId=${this.postId}
2.(window.location.href).replace(window.location.search,'')
第二种,如:
http://web.ehoo100.com/static/matrix/?name=123544&time=7456416516#/teamwork?postId=4079
【解决vue|解决vue hash模式下微信分享#号问题】(window.location.href).replace(window.location.search,'') ==>http://web.ehoo100.com/static/matrix/#/teamwork?postId=4079
http://web.ehoo100.com/static/matrix/#/teamwork?postId=4079
(window.location.href).replace(window.location.search,'') ==>http://web.ehoo100.com/static/matrix/#/teamwork?postId=4079
不管我们的hash #号前面被追加了什么字段,都不会影响,我们最终需要的链接
文章图片
image.png
推荐阅读
- parallels|parallels desktop 解决网络初始化失败问题
- 考研英语阅读终极解决方案——阅读理解如何巧拿高分
- vue-cli|vue-cli 3.x vue.config.js 配置
- 2020-04-07vue中Axios的封装和API接口的管理
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- Spark|Spark 数据倾斜及其解决方案
- 解决SyntaxError:|解决SyntaxError: invalid syntax
- VueX--VUE核心插件