一、微信浏览器分享
ps:微信浏览器不能自定分享,只能通过浏览器右上角三个点去分享,如果要自定义分享的内容,需要先进行微信分享配置。且只有从公众号菜单、微信收藏、气泡连接等方式进入的分享,分享出去的内容才会呈卡片的形式。直接分享,分享出去的会是一个链接
微信分享配置代码
let res = await getJssdk({ url: link });
let { appId, timestamp, nonceStr, signature } = res.data;
wx.config({
debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId, // 必填,公众号的唯一标识
timestamp: timestamp * 1, // 必填,生成签名的时间戳
nonceStr, // 必填,生成签名的随机串
signature, // 必填,签名
jsApiList: [
"updateAppMessageShareData", //自定义“分享给朋友”及“分享到QQ”按钮的分享内容
"updateTimelineShareData", //自定义“分享到朋友圈”及“分享到QQ空间”按钮的分享内容
], // 必填,需要使用的JS接口列表
});
wx.ready(() => {
// 需在用户可能点击分享按钮前就先调用
let shareData = this.shareData;
let config = shareData
? {
title: shareData.title,
desc: shareData.desc,
link,
imgUrl: shareData.icon,
}
: {
title: document.title, // 分享标题
desc: "为残疾人服务的专业科技平台。爱心互联,科技铸梦,爱心、专心、科技、创新", // 分享描述
link, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: "../../assets/common/logo.png", // 分享图标
};
wx.updateAppMessageShareData({
...config,
success: () => {
// 设置成功
console.log("updateAppMessageShareDatasharesuccess");
},
complete: (err) => {
console.log("complete", err);
},
});
wx.onMenuShareAppMessage({
...config,
success: () => {
// 设置成功
console.log("onMenuShareAppMessagesharesuccess");
},
complete: (err) => {
console.log("complete", err);
},
});
wx.updateTimelineShareData({
...config,
success: () => {
// 设置成功
console.log("updateTimelineShareDatasharesuccess");
},
complete: (err) => {
console.log("complete", err);
},
});
wx.onMenuShareTimeline({
...config,
success: () => {
// 设置成功
console.log("onMenuShareTimelinesharesuccess");
},
complete: (err) => {
console.log("complete", err);
},
});
});
wx.error(function (res) {
console.log("wxerror", res);
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
二、普通浏览器分享
普通浏览器分享可以用nativeshare插件