H5微信分享在前端的应用还是很多的,本文主要说的是微信分享自定义的链接,图片,以及分享后的回掉的相关问题。
- 分享的前置准备工作,包括配置安全域名,等。前端的工作如下:先引入jssdk:
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script> - wx.config,wx.checkJsApi这些网上很多了就不多堆积了,说一下重点的地方,

在自定义的分享链接时候,确认当前传给后台拿签名等参数时候,确保传的链接是和当前页面的对应的公众海安全域名保持一致,(切记传给后台的链接为当前的页面路径,并不是自定义要分享的链接,而自定义的链接在确保和当前安全域名一致的情况下,可以自定义,比如,当前页面为www.aaa.com/c/d,配置的安全域名为www.aaa.com,传给后台的url为当前页面的链接www.aaa.com/c/d,然后wx.onMenuShareAppMessage和wx.onMenuShareTimeline的link可以传自定义的链接www.aaa.com/e/f)打开debug模式后,确认签名正确。一般情况下报错无效签名都是传的url的路径不正确。
关于回调,我在vue项目中使用的是vuex,在state定义
share_callback:'default'//default:未分享或者没回掉 AppMessageSuccess :分享给朋友成功 TimelineSuccess :分享给朋友圈成功 AppMessageCancel :分享给朋友取消 TimelineCancel :分享给朋友圈取消
然后在mutations中定义改变的方法,在actions中commit该方法
[SHARE_CALLBACK](state,{share_callback}){ state.share_callback=share_callback } sharecallback({commit},{callback}){ let share_callback=callback commit(SHARE_CALLBACK,{share_callback}) }在微信分享的回掉中,调用store.dispatch
import store from '../store/index'export default { /** * params:default:未分享或者没回掉 * AppMessageSuccess :分享给朋友成功 * TimelineSuccess :分享给朋友圈成功 * AppMessageCancel :分享给朋友取消 * TimelineCancel :分享给朋友圈取消 * */ callback:function(state){ store.dispatch('sharecallback',{callback:state}) }}