wechat.js 2.81 KB
// 微信分享 公共方法

// var jweixin = require('jweixin-module');

export default {
	// 是否在微信中
	isWechat: function() {
		const ua = window.navigator.userAgent.toLowerCase();
		if (ua.match(/micromessenger/i) == 'micromessenger') {
			return true;
		} else {
			return false;
		}
	},
	//初始化sdk配置  
	initJssdkShare: function(callback, url) {
		uni.request({
			url: '/uni/api/weixin/get_wx_sign',
			method: 'POST',
			data: {url: url},
			dataType: 'json',
			success: (res) => {
				const { data } = res;
				if(data.code === 0){
					jWeixin.config({
						debug: false,
						appId: data.data.appId,
						timestamp: data.data.timestamp,
						nonceStr: data.data.noncestr,
						signature: data.data.signature,
						jsApiList: [
							'checkJsApi',
							//分享到朋友圈
							'onMenuShareTimeline',
							// 'updateAppMessageShareData',
							//分享给朋友
							'onMenuShareAppMessage',
							// 'updateTimelineShareData',
							//分享到QQ空间
							'onMenuShareQZone',
							//分享到腾讯微博
							'onMenuShareWeibo',
							'getLocation'
						]
					});
					//配置完成后,再执行分享等功能  
					if (callback) {
						callback();
					}
				}
			}
		});
	},
	// 自定义分享页面调用方法
	share: function(data, url) {
		url = url ? url : window.location.href;
		if (!this.isWechat()) {
			return;
		}
		//每次都需要重新初始化配置,才可以进行分享 
		this.initJssdkShare(function(){
			jWeixin.ready(function() {
				var shareData = {
					title: data && data.title ? data.title : '谛宝多多商城',
					desc: data && data.desc ? data.desc : '宠物行业一站式B2B采购平台',
					link: url,
					imgUrl: data && data.img ? data.img : 'https://dbc-static.oss-cn-beijing.aliyuncs.com/credit_shop/global/logo.jpg',
					success: function(res) {
							//用户点击分享后的回调,这里可以进行统计,例如分享送金币之类的  
							// post('/api/member/share');
					},
					cancel: function(res) {}
				};
				//分享给朋友接口  
				jWeixin.onMenuShareAppMessage(shareData);
				//分享到朋友圈接口  
				jWeixin.onMenuShareTimeline(shareData);
				// 分享到QQ
				jWeixin.onMenuShareQQ(shareData);
				// 分享到微博
				jWeixin.onMenuShareWeibo(shareData);
			});
		}, url);
	},
	// 向小程序发送分享的数据
	postData: function(t){
		// imgUrl: image || 'https://dbc-static.oss-cn-beijing.aliyuncs.com/wx/logo.jpg'
		const postData = {
			link: window.location.href,
			title: t
		}
		jWeixin.miniProgram.postMessage({ data: JSON.stringify(postData) });
	},
	isMini: function(){
		jWeixin.miniProgram.getEnv(function (res) {
			//获取当前环境
			if(res.miniprogram){ 
				// true 在微信小程序中
				return true;
			}else{
				// false 在微信公众号里
				return false;
			}
		});
	}
}