本文实例为大家分享了vue微信分享展示的具体代码,供大家参考,具体内容如下
首先以分享给朋友为例
1、先看官方文档
desc: '',// 分享描述
link: '',// 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: '',// 分享图标
type: '',// 分享类型,music、video或link,不填默认为link
dataUrl: '',// 如果type是music或video,则要提供数据链接,默认为空
success: function () {
// <a href="/tag/yonghu/" target="_blank" class="keywords">用户</a>确认<a href="/tag/fenxiang/" target="_blank" class="keywords">分享</a><a href="/tag/houzhixing/" target="_blank" class="keywords">后执行</a>的回调<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>
},cancel: function () {
// <a href="/tag/yonghu/" target="_blank" class="keywords">用户</a>取消<a href="/tag/fenxiang/" target="_blank" class="keywords">分享</a><a href="/tag/houzhixing/" target="_blank" class="keywords">后执行</a>的回调<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>
}
});
2、vue分享踩的坑
* 1、微信分享中获取动态的url * 2、 微信二次分享自动添加的参数 form=singlemessage * 3、vue中各个页面都可以调用分享
3、直接代码分析
为了保证每个页面都可以调起微信分享,需要在vue根组件中,添加 watch监听 代码
4、shareOut()函数
5、需要注意的事
*1、url是直接通过 window.location.href 获取的,不是使用 window.location.href.split(“#”)[0]来获取,因为我的vue项目是通过hash模式来进行路由跳转的,直接使用 window.location.href.split(“#”)[0]会导致签名失败
*2、而且我们要在当前页面分享出去之后,其他用户打开之后 不是当前分享出去的页面,这就需要 调整 shareOut()函数中 obj对象中的 link参数为其他页面链接
6、link参数
上述 5 问题中的加密字符串汇总的 url 和 分享对象中 link中的页面链接可以不用保持一样,因为本来就是要在当前页面分享出去其他页面的链接。网上我看到有人说这两个必须要保持一样,其实没有必要,除非你只是简单的在vue项目中的其中一个页面做分享,然后只分享当前页面才需要让二者保持一致性。