当前位置:首页 > H5 > 正文内容

微信禁用右上角的分享按钮,以及隐藏分享的子按钮等菜单项

高老师6年前 (2018-08-29)H55091

和腾讯合作的项目活动中腾讯要求我们必须隐藏朋友圈分享功能,一直以为没有官方Api,百般查找才在文档中找到,可能是自己不太细心。

微信官方文档在jsjdk的"界面操作"中有详细说明:

关闭当前网页窗口接口

wx.closeWindow();

批量隐藏功能按钮接口

wx.hideMenuItems({
menuList: [] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3
});

批量显示功能按钮接口

wx.showMenuItems({
menuList: [] // 要显示的菜单项,所有menu项见附录3
});

隐藏所有非基础按钮接口

wx.hideAllNonBaseMenuItem();
// “基本类”按钮详见附录3

显示所有功能按钮接口

wx.showAllNonBaseMenuItem();

通过jsjdk我的代码是这样的:

wx.hideMenuItems({
menuList: ["menuItem:share:timeline", "menuItem:copyUrl", "menuItem:share:appMessage", "menuItem:share:qq", "menuItem:share:weiboApp", "menuItem:favorite", "menuItem:share:facebook", "menuItem:share:QZone", "menuItem:editTag", "menuItem:delete", "menuItem:copyUrl", "menuItem:originPage", "menuItem:readMode", "menuItem:openWithQQBrowser", "menuItem:openWithSafari", "menuItem:share:email", "menuItem:share:brand"] // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮
});

以上代码中我隐藏了很多选项,例如timeline是朋友圈的意思。

另外一种方式是不需要微信Jsjdk支持的,内置微信浏览器的方法(但是全部都会隐藏):

function onBridgeReady() {
WeixinJSBridge.call('hideOptionMenu');
}

if (typeof WeixinJSBridge == "undefined") {
if (document.addEventListener) {
document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
} else if (document.attachEvent) {
document.attachEvent('WeixinJSBridgeReady', onBridgeReady);
document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
}
} else {
onBridgeReady();
}

以上方式在安卓中会非常完美,但是在ios系统中如果再次返回当前页面则出现了失效的问题,必须刷新才行。我通过页面监听返回事件来再次刷新页面或者重新执行jsjdk,但是部分页面不是我们的url。于是同事建议在页面使用定时器持续的进行jsjdk设置。由于是永久循环执行定时器,就算页面不刷新再次返回依然有效。一定要注意定时器执行的是wx.ready后的方法。例如上面的第二种方式只需要持续执行WeixinJSBridge.call('hideOptionMenu');

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.5b1.cn/post/270.html

分享给朋友:

“微信禁用右上角的分享按钮,以及隐藏分享的子按钮等菜单项” 的相关文章

Javascript封装的原生Ajax请求

Javascript封装的原生Ajax请求

由于工作需要长期使用Ajax,一个页面重复的AJAX请求太多,于是封装起来,只需要编写回调函数/* ------------- 使用方法: 1.ajaxrequest()函数执行准备的参数(1.请求地址2.发送数据字符串拼接3.type值可选get/post4.回调函数名称)   exam...

javascript停止定时器,	js删除定时器

javascript停止定时器, js删除定时器

    window.setInterval(method,time)方法本身会返回一个资源句柄,使用clearInterval(Intervalid)方法即可清除定时器<script> var num=0; //每隔1秒再控制台输...

阻止表单提交刷新页面

阻止表单提交刷新页面

<form action="save.php" method="post"   target="nm_iframe">      &nbs...

websql的使用方法

websql的使用方法

<!--          三个核心方法          openDatabase:这个方法使用现有数据库或创建...

Javascript事件冒泡和捕捉的阻止

Javascript事件冒泡和捕捉的阻止

<!DOCTYPE html> <html> <head> <title>捕捉和冒泡</title> <meta charset="utf-8"> </head> <bo...

Javascript页面播放语音,Javascript语音读取页面的文字

Javascript页面播放语音,Javascript语音读取页面的文字

<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script type...