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

这篇文章是从别的地方转的,一是让更多人学习,二是自己有个留存。只供学习用。


<!--禁用微信分享按钮-->
    <script>
        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();
        }
    </script>

这个API在以前公布的部分接口被官方和谐掉很久 了, 比如一键关注、分享给好友、分享到朋友圈等。当然,你可能会发现微信官方推送的一些文章还能使用这些功能,粗略估计,官方是对这个API增加了白名单控 制,判断Referer,如果是微信官方的地址、或者是有合作的商家地址,则允许调用,否则,返回“access denied”!

截止目前,笔者还没用发现还有什么办法能继续使用它!不过,官方和谐掉这个API其实也是说得过去的,因为在整个WebView的右上角,官方做了一个Navtive的按钮,点开以后,包括分享给好友、分享到朋友圈这样的功能都有,所以,官方也是在做一些引导。

当然,WeixinJSBridge这个API也并不是所有功能都被和谐掉了,相反,有好几个功能还是相当有用的,可以正常使用,比如:

1、隐藏微信网页右上角的按钮(...按钮):开发者可以用这个功能来禁止当前页面被分享

2、隐藏微信网页底部的导航栏(比如前进后退和刷新):这个导航栏会占用一定的区域,开发者可以认为用户不会用到它,将其隐藏掉

3、在微信网页中获取用户的网络状态:开发者可以利用这个API获得用户的网络状态,并提供不同的服务,比如视频类,在wifi下提供高清视频流,在2g网络下提供普通清晰视频流等等

下面分别通过简单的几行代码,说明这几个API的用法:

1、隐藏微信网页右上角的按钮

1
2
3
4
5
6
7
8
9
document.addEventListener( 'WeixinJSBridgeReady' , function onBridgeReady() {
     // 通过下面这个API隐藏右上角按钮
     WeixinJSBridge.call( 'hideOptionMenu' );
});
             
document.addEventListener( 'WeixinJSBridgeReady' , function onBridgeReady() {
     // 通过下面这个API显示右上角按钮
     WeixinJSBridge.call( 'showOptionMenu' );
});

2、隐藏微信网页底部的导航栏

1
2
3
4
5
6
7
8
9
document.addEventListener( 'WeixinJSBridgeReady' , function onBridgeReady() {
     // 通过下面这个API隐藏底部导航栏
     WeixinJSBridge.call( 'hideToolbar' );
});
            
document.addEventListener( 'WeixinJSBridgeReady' , function onBridgeReady() {
     // 通过下面这个API显示底部导航栏
     WeixinJSBridge.call( 'showToolbar' );
});

3、在微信网页中获取用户的网络状态

1
2
3
4
WeixinJSBridge.invoke( 'getNetworkType' ,{},function(e){
     // 在这里拿到e.err_msg,这里面就包含了所有的网络类型
     alert(e.err_msg);
  });

e.err_msg的取值如下所示:

network_type:wifi wifi网络 2 network_type:edge 非wifi,包含3G/2G 3 network_type:fail 网络断开连接 4 network_type:wwan 2g或者3g

 

********************************************************************************此处分割线 *******************************************************************************

 

在微信JSSDK说明文档中有关于按钮屏蔽使用等的说明:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

左边菜单点击【微信网页开发】,点击下面的二级菜单【微信JS-SDK说明文档】,然后就能看到一系列关于JS-SDK的说明。目录10.界面操作就是需要的地方,只不过火狐大概点击不了或者根本没做页面点击,所以直接页面CTRL+F搜【菜单】两个字,往下找就是了

 

第十条界面操作则是对于按钮的处理

1
 

在附录三中有所有涉及的菜单项列表

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

使用方式,直接将项隐藏的菜单项
  • 发送给朋友: "menuItem:share:appMessage"
  • 分享到朋友圈: "menuItem:share:timeline"
  • 分享到QQ: "menuItem:share:qq"
  • 分享到Weibo: "menuItem:share:weiboApp"
  • 收藏: "menuItem:favorite"
  • 分享到FB: "menuItem:share:facebook"
  • 分享到 QQ 空间/menuItem:share:QZone

放入到menuList:[]括号中,具体拼接方式,大概是","


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值