不自重者,取辱。不自长者,取祸。不自满者,受益。不自足者,博闻。
微信WeixinJSBridge API续 进入全屏
line

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

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

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

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

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

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

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

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

document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
    // 通过下面这个API隐藏右上角按钮
    WeixinJSBridge.call('hideOptionMenu');
});
           
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
    // 通过下面这个API显示右上角按钮
    WeixinJSBridge.call('showOptionMenu');
});

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

document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
    // 通过下面这个API隐藏底部导航栏
    WeixinJSBridge.call('hideToolbar');
});
          
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
    // 通过下面这个API显示底部导航栏
    WeixinJSBridge.call('showToolbar');
});

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

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

e.err_msg的取值如下所示:

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

可以戳这个链接测试一下:http://www.baidufe.com/demo/wxjsapi2.html

或者直接用微信扫描下面这个二维码:


以上!分享给需要用到的网友。

趣店(原趣分期)技术学院
重点关注技术架构、服务化、优秀工具、自动化平台、开发全流程一体化解决方案、新人培养、工程师进阶之道等方面
这里环境优雅、氛围年轻、主要是福利还多,还等什么?我们敞开技术的大门,欢迎各种工程师加入!

评论区域

line
  • 123 2018-07-18 10:11:33 回复
     
  • chyee 2015-01-06 12:54:27 回复
    回复 chyee : URL改掉之后就分享就被禁用了。。。。
    chyee said:
    回复 ysz : 使用history.pushState,把当前的URL改掉,改为一个过渡页面,加上需要的参数,分享出去。当其他人打开分享的过渡页面后,再重定向到需要分享的页面,这样分享正...
  • chyee 2015-01-06 12:46:57 回复
    回复 ysz : 使用history.pushState,把当前的URL改掉,改为一个过渡页面,加上需要的参数,分享出去。当其他人打开分享的过渡页面后,再重定向到需要分享的页面,这样分享正确的URL应该是可行的。
    ysz said:
    回复 Alien : ios分享被限制问题什么时候能解决?
  • ysz 2015-01-06 11:20:22 回复
    回复 Alien : ios分享被限制问题什么时候能解决?
    Alien said:
    回复 leo : 请更新WeixinApi到3.6,有bug fixed。
  • Alien 2014-12-30 10:25:40 回复
    回复 leo : 请更新WeixinApi到3.6,有bug fixed。
    leo said:
    看了你的这个项目
    https://github.com/zxlie/WeixinApi
    已经解决,非常感谢:)
  • leo 2014-12-29 17:06:38 回复
    看了你的这个项目
    https://github.com/zxlie/WeixinApi
    已经解决,非常感谢:)
  • leo 2014-12-29 16:35:41 回复
    分享给好友,分享到朋友圈时自定义分享的链接,分享内容,以及分享的图片
    
    网上能够找到的办法,包括官方的开发者提问,有三种
    1.第一种是WeixinJSBridge,现在已经不能使用,access_deny
    2.第二章是meta标签,同样不能使用
    3.第三种是增加一个window.dataForWeixin变量来自定义,还是不能使用
    
    也就是说,官方不提供自定义分享内容,图片,链接的方法
    
    怀疑:是否只有测试账号会出现access_deny的情况,真实的通过认证的公众号不会出现这种限制?
    
  • 狗新狗吠 2014-12-22 00:34:17 回复
    你好,我发现分享到朋友圈之前就已经回调了ok 的消息,有办法确保真的分享以后才得到这个OK 消息吗?目前是没法确定是否真的分享成功了的
  • Alien 2014-12-09 20:08:12 回复
    回复 temp : 官方不允许,所以,做不到的。
    temp said:
    请问现在这个JS API能否做大打开某公众号的资料页 以便关注?
  • temp 2014-12-09 15:13:39 回复
    请问现在这个JS API能否做大打开某公众号的资料页 以便关注?
  • Alien 2014-11-25 14:54:49 回复
    回复 必成大器 : 可以直接隐藏右上角菜单入口
    必成大器 said:
    可以隐藏分享朋友圈按钮吗?
  • 必成大器 2014-11-25 14:54:03 回复
    可以隐藏分享朋友圈按钮吗?
  • test 2014-09-19 14:28:01 回复
    <a href="http://www.baidu.com">test</a>
  • mega 2014-09-04 19:21:35 回复
    回复 jing : 好使!
    jing said:
    您好, hideToolbar隐藏和显示底部导航不好使了怎么?
  • Alien 2014-08-14 08:03:39 回复
    回复 xiaoka : 如果你的游戏是用canvas写的,直接转成图片就可以。不过Android上不支持datauri格式的,你需要转存成url
    xiaoka said:
    大神 关注了你的微信公众 请问游戏分享怎么把截屏当图片分享
  • xiaoka 2014-08-14 01:04:55 回复
    大神 关注了你的微信公众 请问游戏分享怎么把截屏当图片分享
  • Alien 2014-08-10 11:35:33 回复
    回复 jing : 请使用WeixinApi:https://github.com/zxlie/WeixinApi
    jing said:
    您好, hideToolbar隐藏和显示底部导航不好使了怎么?
  • jing 2014-07-29 11:33:07 回复
    您好, hideToolbar隐藏和显示底部导航不好使了怎么?