You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

130 lines
5.4 KiB

import Vue from "vue";
import wx from "weixin-js-sdk";
import axios from "axios";
import wxShareModel from "../models/wxShare-model.js";
import homeApi from "../models/home-model.js";
//微信分享功能
Vue.prototype.wxShare = function (params) {
var params = params || {};
wxShareModel.getWXCheck().then(response =>{
if (response.code != 0) {
return;
}
var jsApiSignConfig = response.response.jsApiSignConfig;
wx.config({
debug: false, // 开启调试模式,开发时可以开启
appId: jsApiSignConfig.appId, // 必填,公众号的唯一标识 由接口返回
timestamp: jsApiSignConfig.timestamp, // 必填,生成签名的时间戳 由接口返回
nonceStr: jsApiSignConfig.nonceStr, // 必填,生成签名的随机串 由接口返回
signature: jsApiSignConfig.signature, // 必填,签名 由接口返回
jsApiList: [
"onMenuShareAppMessage",
"onMenuShareTimeline",
"onMenuShareQQ",
"onMenuShareWeibo",
"onMenuShareQZone"
]
});
wxShareModel.getShare(params).then(response => {
if (response.code != 0) {
return;
}
var shareConfig = response.response.shareConfig;
var couponNo = response.response.couponNo
var urlParams = '';
let uuniqueId = this.$cookies.get('1hjz_mall_unique_id')
if (couponNo !== undefined && couponNo !== null && couponNo !== "") {
urlParams = '?batchNo=' + couponNo
}
if (uuniqueId !== undefined && uuniqueId !== null && uuniqueId !== "") {
if (urlParams.length > 0) {
urlParams += '&uniqueId=' + uuniqueId
} else {
urlParams = '?uniqueId=' + uuniqueId
}
}
let estateStr = localStorage.getItem("estate") || "";
if(estateStr && estateStr.length > 0){
let estateArr = estateStr.split("&");
let estateId = estateArr[0];
if (estateId !== undefined && estateId !== null && estateId !== "") {
if (urlParams.length > 0) {
urlParams += '&estateId=' + estateId
} else {
urlParams = '?estateId=' + estateId
}
}
}
wx.ready(() => {
//获取“分享给朋友”按钮点击状态及自定义分享内容接口
wx.onMenuShareAppMessage({
// 分享给朋友
title: shareConfig.title, // 分享标题
desc: shareConfig.desc, // 分享描述
link: shareConfig.url + urlParams, // 分享链接 默认以当前链接
imgUrl: shareConfig.img, // 分享图标
success: function (res) {}
});
//转发到朋友圈
wx.onMenuShareTimeline({
title: shareConfig.title, // 分享标题
desc: shareConfig.desc, // 分享描述
link: shareConfig.url + urlParams, // 分享链接 默认以当前链接
imgUrl: shareConfig.img, // 分享图标
success: function (res) {}
});
//微信分享qq
wx.onMenuShareQQ({
title: shareConfig.title, // 分享标题
desc: shareConfig.desc, // 分享描述
link: shareConfig.url + urlParams, // 分享链接 默认以当前链接
imgUrl: shareConfig.img, // 分享图标
success: function (res) {}
});
//获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
wx.onMenuShareWeibo({
title: shareConfig.title, // 分享标题
desc: shareConfig.desc, // 分享描述
link: shareConfig.url + urlParams, // 分享链接 默认以当前链接
imgUrl: shareConfig.img, // 分享图标
success: function (res) {}
});
//获取“分享到QQ空间”按钮点击状态及自定义分享内容接口(即将废弃)
wx.onMenuShareQZone({
title: shareConfig.title, // 分享标题
desc: shareConfig.desc, // 分享描述
link: shareConfig.url + urlParams, // 分享链接 默认以当前链接
imgUrl: shareConfig.img, // 分享图标
success: function (res) {}
});
// 首次进入页面进会弹窗确认地理位置
if (localStorage.getItem("latitude") == null) {
wx.getLocation({
type: "gcj02", // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
success: function (res) {
localStorage.setItem("latitude", res.latitude);
localStorage.setItem("longitude", res.longitude);
},
cancel: function () {
alert("拒绝定位");
}
});
} else {
}
// alert("lat:" + localStorage.getItem("latitude") + ";lng:" + localStorage.getItem("longitude"));
wx.error(function (res) {
console.log("--------wx")
alert("wx-js初始化: " + res);
});
});
});
});
}