参考 https://www.jianshu.com/p/6007c5db21b1
创建wechat.js
//weixin-js-sdk应用
//weixin-js-sdk应用
// npm install weixin-js-sdk mint-ui --save
const wx = require('weixin-js-sdk')
export default {
methods: {
wechatShare(info) {
const that = this
// 判断苹果手机
let _url = ''
if (window.__wxjs_is_wkwebview === true) {
_url = window.location.href.split('#')[0] || window.location.href
} else {
_url = window.location.href
}
_url = encodeURIComponent(_url) //没有会报错
//这里是封装的axios,换成任意请求皆可
this.http.post("get_sign",{url:_url}).then(res=>{
wx.config({
debug: false,
appId: res.data.appid, // 必填,公众号的唯一标识
timestamp: res.data.timestamp, // 必填,生成签名的时间戳
nonceStr: res.data.noncestr, // 必填,生成签名的随机串
signature: res.data.sign, // 必填,签名,见附录1
jsApiList: [
'previewImage',
'hideAllNonBaseMenuItem',
'showMenuItems',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'chooseWXPay'
] // 必填,需要使用的 JS 接口列表,所有JS接口列表见附录2
})
});
uni.request({
url: `https://api?url=${_url}`,
method: "get",
success: res => {
if (res.statusCode == 200) {
let data = {
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: res.data.appId, // 必填,公众号的唯一标识
timestamp: res.data.timestamp, // 必填,生成签名的时间戳
nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
signature: res.data.signature, // 必填,签名
jsApiList: [
'previewImage',
'hideAllNonBaseMenuItem',
'showMenuItems',
'onMenuShareTimeline',
'onMenuShareAppMessage',
'chooseWXPay'
//'onMenuShareAppMessage', //1.0 分享到朋友
//'onMenuShareTimeline', //1.0分享到朋友圈
'updateAppMessageShareData', //1.4 分享到朋友
'updateTimelineShareData', //1.4分享到朋友圈
] // 必填,需要使用的 JS 接口列表,所有JS接口列表见附录2
};
wx.config(data);
return;
}
}
});
wx.ready(() => {
const share_title = info.title
const share_desc = info.desc
const share_link = info.link
const share_img = info.img
wx.showOptionMenu()
//需在用户可能点击分享按钮前就先调用
wx.updateAppMessageShareData({
title: share_title, // 分享标题
desc: share_desc, // 分享描述
link: share_link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: share_img, // 分享图标
success: function () {
// 设置成功
console.log("aaa");
}
});
wx.updateTimelineShareData({
title: share_title, // 分享标题
link: share_link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: share_img, // 分享图标
success: function () {
// 设置成功
}
});
//wx.onMenuShareTimeline({
// title: share_title, // 分享标题
// link: share_link, // 分享链接
// imgUrl: share_img, // 分享图标
// })
//wx.onMenuShareAppMessage({
// title: share_title, // 分享标题
// desc: share_desc, // 分享描述
// link: share_link, // 分享链接
// imgUrl: share_img, // 分享图标
// })
})
}
}
}
组件中引入
import wxShare from "./wechat";
export default {
mixins: [wxShare],
created() {
this.wxfx();
},
methods: {
wxfx() {
const shareInfo = {
title: `自定义标题`,
desc: `自定义描述`,
link: "https://www.baidu.com",
img:
"图片地址(最好是png)"
};
this.wechatShare(shareInfo);
},
}
}