先放一个官方文档的链接
https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#48
上代码:
禁止分享:
async hideShare() {
let locationHref = {url: window.location.href};
let info = await request({
url: `这个是后台提供的接口地址,会提供你分享的一些基本配置详细见微信官方文档`,
method: 'post',
data: locationHref
});
const data = info.data.result;
// 这个要先npm install jweixin-module --save(具体命令行各位在百度一下吧,我忘了)然后在这样=一下
const wx = require('jweixin-module');
wx.config({
debug: false,
appId: data.appId, // 和获取Ticke的必须一样------必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature, // 必填,签名,见附录1
jsApiList: [
'hideMenuItems'
]
});
console.log('禁止分享');
// 禁止分享
wx.hideMenuItems({// 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
menuList: ['menuItem:share:appMessage','menuItem:share:timeline','menuItem:share:timeline', 'menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone','menuItem:openWithSafari']
});
}
分享:
let locationHref = {url: window.location.href};
let info = await request({
url: `/xxx/xx/xx/xx`,
method: 'post',
data: locationHref
});
const _this = this;
const data = info.data.result;
const wx = require('jweixin-module');
wx.config({
debug: false,
appId: data.appId, // 和获取Ticke的必须一样------必填,公众号的唯一标识
timestamp: data.timestamp, // 必填,生成签名的时间戳
nonceStr: data.nonceStr, // 必填,生成签名的随机串
signature: data.signature, // 必填,签名,见附录1
//需要分享的列表项:发送给朋友,分享到朋友圈,分享到QQ,分享到QQ空间
jsApiList: [
"updateAppMessageShareData",
"updateTimelineShareData",
'showMenuItems'
]
});
// 安卓这块不用showMenuItems也可以,但是ios情况下,去了禁止分享的页面在去可以分享的页面,就不能
// 分享,所以需要在开启一下
wx.showMenuItems({
menuList: ['menuItem:share:appMessage','menuItem:share:timeline','menuItem:share:timeline', 'menuItem:share:qq', 'menuItem:favorite', 'menuItem:share:QZone','menuItem:openWithSafari'] // 要显示的菜单项,所有menu项见附录3
});
//处理验证失败的信息
wx.error(function(res) {
});
let imgUrl = getImgUrl(shareObj.imgUrl);
imgUrl = imgUrl ? imgUrl : this.currentObject.defaultConfigs.shareDefaultImgUrl;
//处理验证成功的信息
wx.ready(function() {
//分享到朋友圈
wx.updateTimelineShareData({
title: shareObj.title ? shareObj.title : this.currentObject.defaultConfigs.shareDefaultTitle, // 分享标题
desc: shareObj.desc ? shareObj.desc : '',
link: shareObj.link? shareObj.link : window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgUrl, // 分享图标
success: function(res) {
// 用户确认分享后执行的回调函数
_this.shareSuccess(res);
}
});
//分享给朋友
wx.updateAppMessageShareData({
title: shareObj.title ? shareObj.title : this.currentObject.defaultConfigs.shareDefaultTitle, // 分享标题
desc: shareObj.desc ? shareObj.desc : '', // 分享描述
link: shareObj.link? shareObj.link : window.location.href, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
imgUrl: imgUrl, // 分享图标
type: "", // 分享类型,music、video或link,不填默认为link
dataUrl: "", // 如果type是music或video,则要提供数据链接,默认为空
success: function(res) {
// 用户确认分享后执行的回调函数
}
});
});
效果:
禁止分享给朋友,朋友圈,qq啥的,效果图如下:
可以分享至朋友,朋友圈,qq啥的效果图:
***uni-app 初学者,以上代码均为自己摸索得出,如有错误,请指正。***