微信公众号分享配置无效。。分享出来的只是纯链接了,如何自定义微信公众号的分享

微信公众号分享配置无效。。分享出来的只是纯链接了

挺久没接微信公众号的项目开发了,最近突然接了一个,结果微信自定义分享给我整懵了。原本配置的好好的,屡试不爽的代码,居然死活不生效,开启debug,开发者工具调试都显示没问题,结果在微信上分享出来就是没有配置生效,而且连以往的默认样式都没有,就是一个页面链接给分享出来了。最后还是兄弟公司的测试提了一嘴,说,现在微信的分享,必须要放到公众号里才生效,他们遇到过。。。纳尼?沃特发。。。于是迫不及待赶紧把公众号的菜单配置上去,从公众号自定义菜单进去,尝试分享,结果真的是,很顺利就分享成功了。。。哎,我一直以为是微信开放文档有啥更新,对着文档研究了半天也没发现个所以然,很委屈呀,你说你微信规则有变动,为啥也不提醒提醒,文档都翻烂了,也没发现在哪里有相关说明。特此一记吧,也给大伙提个醒。

像这样直接点击链接进入,分享是不行的

上方是直接通过链接点击进入分享出来的结果

这是在公众号的自定义菜单进去的分享

这里是通过公众号的自定义菜单入口进入的分享,可以成功自定义分享

讲到这里了,顺便说一下如何自定义微信分享吧。直接上代码:

// 微信分享
Vue.prototype.wxShare = function (myurl, shareSuccess, desc, title, imgUrl) {
	let vm = this;
	let urlname = window.location.href.split('#')[0];

	
	/**
	 * 获取微信token信息
	 * @return {[type]} [description]
	 */
	function getToken(callback) {
		axios.post('xxxxx获取签名算法啥的接口', {'url': urlname})
			.then(json => {
				if (json.data.code == 1) {
					Wx.config({
						debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
						appId: json.data.token.appId, // 必填,公众号的唯一标识
						timestamp: json.data.token.timestamp, // 必填,生成签名的时间戳
						nonceStr: json.data.token.nonceStr, // 必填,生成签名的随机串
						signature: json.data.token.signature,// 必填,签名,见附录1
						jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo', 'onMenuShareQZone', 'hideMenuItems'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
					});
					callback();
				} else {
					// alert('分享功能暂不能使用')
					// MessageBox('提示', json.data.msg + '分享功能暂不能使用');
				}
			}, () => {
				// alert('网络异常,获取微信参数失败')
				// MessageBox('提示', '网络异常,获取微信参数失败');
			});
	}
	// 分享内容、标题、链接等配置
	let shareConfig = {
		title: title||'默认名字',
		desc: desc||'默认描述',
		link: myurl||'默认链接',
		imgUrl: imgUrl||'默认图片地址',
		success: function () {
			if (shareSuccess) {
				shareSuccess();
			}
		},
		cancel: function () {
			alert('分享已取消');
		}
	};	
	// 初始化分享函数调用
	function initShare() {
		Wx.ready(function () {
			// 分享到朋友圈
			Wx.onMenuShareTimeline(shareConfig);

			// 分享给朋友
			Wx.onMenuShareAppMessage(shareConfig);

			// 分享到QQ
			Wx.onMenuShareQQ(shareConfig);

			// 分享到腾讯微博
			Wx.onMenuShareWeibo(shareConfig);

			// 分享到QQ空间
			Wx.onMenuShareQZone(shareConfig);
		});
	}
 
	getToken(initShare);

};

使用的时候只需在页面调用,然后传入对应的参数即可

var myurl = '你要分享出去的页面地址,可以携带一些特定业务参数';
var desc = "分享的一些描述"
var shareSuccess = true
var title = "分享的标题"
var imgUrl = "图片地址,如果是商品详情很有可能是商品的主图之类的"
this.wxShare(myurl,shareSuccess,desc,title,imgUrl);

值得一提的是,微信开放文档的说明
在这里插入图片描述
按说明1.4.0之后的分享要用最新的,但是实际上操作下来的话,它确实只是说即将废弃,但是如果你只写最新的接口,还是可能无法正常分享的,所以,如果你是1.4.0之后的版本,那就把老的和新的都写上。如果是1.4.0之前的,就只写老的接口就好了。

在这里插入图片描述
版本的话就在package.json里看。方法不是一成不变,时刻关注官方文档,以官方文档为主。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值