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

在微信上,通过公众平台推送给用户的文章,是在微信内部直接打开的,用的无外乎就是一个UIWebView控件(IOS上,Android上也差不多)。但特殊的是,微信官方在这里面加了一个默认的Js API--WeixinJSBridge,通过它,能直接在该页面上做这些操作:

1、将文章分享到微信朋友圈

2、将文章直接发送给微信上的好友

3、将文章分享到腾讯微博

4、关注指定用户

以上这些操作,都是通过WeixinJSBridge.invoke接口来完成的,那么,这个WeixinJSBridge对象还有没有提供一些别的方法可以让我们来使用的?于是,我做了这么个测试,用来提取WeixinJSBridge对象中的其他接口:http://www.baidufe.com/demo/weixinjsapi.html 请用微信打开该网址,怕输入麻烦的话,可以扫描如下二维码:


如果你也是一个技术控,那就把下面这段儿代码拿过去,自己玩儿吧:

/**
 * 检测微信JsAPI
 * @param callback
 */
function detectWeixinApi(callback){
    if(typeof window.WeixinJSBridge == 'undefined' || typeof window.WeixinJSBridge.invoke == 'undefined'){
        setTimeout(function(){
            detectWeixinApi(callback);
        },200);
    }else{
        callback();
    }
}
     
detectWeixinApi(function(){
    var html = [];
    for(var key in window.WeixinJSBridge) {
        var js = 'WeixinJSBridge.' + key + ' = ' + window.WeixinJSBridge[key].toString();
        js = js_beautify(js); // 美化一下,看着舒服些
        html.push('<pre class="brush:js;toolbar:false;">' + js + '</pre>')
    }
     
    document.getElementById('WeixinJsApi').innerHTML = html.join('');
     
    // 代码高亮
    SyntaxHighlighter.highlight();
});


内容更新:

-----------------------------

比较多网友都在咨询这个微信内置API,在这里更新一下文章吧:这个Api大部分接口都被官方限制使用了,具体原因无外乎是为了安全、为了盈利!如果你也还在寻找这个接口的使用方法,估计也没有什么好的办法了。

另外,如果你是在做微信公众平台的话,我还写了另外一篇关于这个WeixinJSBridge API的文章,里面有几个API是官方提供的,稳定可用,链接:http://www.baidufe.com/item/c4bacb3bd66930f2e43e.html  ,希望对你有用。


内容更新:2014

-----------------------------

在Android版本的微信环境中,依然可以通过如下两种方式进行微信(公众)号的推广:

1、<a href="weixin://contacts/profile/微信号原始ID(如:gh_dd4b2c2ada8b)">Baidufe</a>

这种方法能直接打开该号的微信资料页,直接关注;但获取原始ID比较麻烦。


2、<a href="weixin://contacts/profile/微信号(如:www_baidufe_com)">Baidufe</a>

这种方法会打开“加入到通讯录”的界面,然后再是资料页

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

评论区域

line
  • Pern 2017-12-14 22:35:09 回复
    有办法屏蔽微信的 imagePreview 功能么
    好像点击某个图片 这个图片浏览器就跳出来了
  • yuanoook 2015-02-27 00:04:06 回复
    回复 小小 : 判断的话,最准确的是 if( /MicroMessage/.test(navigator.userAgent) ){ /**插入你的代码**/ }
    小小 said:
    请问能否告知如何判断浏览器是否是微信浏览器呢,我百度之后看到说只有先判断是否包含WeixinJSBridge 但是我不知道怎么写。求指导。万分感谢!
  • 小小 2014-12-10 23:18:20 回复
    请问能否告知如何判断浏览器是否是微信浏览器呢,我百度之后看到说只有先判断是否包含WeixinJSBridge 但是我不知道怎么写。求指导。万分感谢!
  • John 2014-11-25 18:14:58 回复
    网页上基本无用。既燃腾讯开放了app的服务(比如转到朋友圈。。。), 为什么不开放网页。
  • Alien 2014-10-29 20:25:39 回复
    回复 云知网 : 请看另外一篇文章
    云知网 said:
    回复 wedge : 我也在找这个问题,我想在网页中用自定议按钮打开分享
  • 云知网 2014-10-29 20:01:18 回复
    回复 wedge : 我也在找这个问题,我想在网页中用自定议按钮打开分享
    wedge said:
    WeixinJSBridge请问这个现在没法直接在网页里一键分享到微信的朋友圈了吗?有没有其他可变通的办法呢?
  • 云知网 2014-10-29 20:00:29 回复
    你写的这些基本都无法用了,还有什么好方法吗?
  • wedge 2014-09-22 18:57:27 回复
    WeixinJSBridge请问这个现在没法直接在网页里一键分享到微信的朋友圈了吗?有没有其他可变通的办法呢?
  • Alien 2014-09-11 16:04:42 回复
    回复 小Ray : 对的,官方Android端的bug
    小Ray said:
    回复 weimenhu : 我也遇到这个问题,在Android下,分享到朋友圈,不管是什么结果,返回代码都是share_timeline:ok. 貌似说是官方的一个BUG了。
  • 小Ray 2014-09-11 15:58:56 回复
    回复 weimenhu : 我也遇到这个问题,在Android下,分享到朋友圈,不管是什么结果,返回代码都是share_timeline:ok.  貌似说是官方的一个BUG了。
    weimenhu said:
    发现一个功能好像有点问题,就是分享到朋友圈的时候,如果不分享,点击取消分享,她还是返回分享成功的的标识。
  • 2014-08-15 16:08:57 回复
    页面初始化 隐藏右上角按钮,然后点击页面中的按钮触发显示,这里不行求解
  • weimenhu 2014-07-15 11:06:08 回复
    发现一个功能好像有点问题,就是分享到朋友圈的时候,如果不分享,点击取消分享,她还是返回分享成功的的标识。
  • Alien 2014-05-20 13:59:23 回复
    回复 rove : 嗯,确实是,好久就不行了
    rove said:
    Android 现在好像也不能用这个了:
    <a href="weixin://contacts/profile/微信号原始ID(如:gh_dd4b2c2ada8b)">Baidufe</a>
  • rove 2014-05-20 11:11:20 回复
    Android 现在好像也不能用这个了:
    <a href="weixin://contacts/profile/微信号原始ID(如:gh_dd4b2c2ada8b)">Baidufe</a>
    
  • Alien 2014-04-19 15:43:35 回复
    回复 Don : imagePreview功能可以用了,请到这里 [ http://www.baidufe.com/item/f07a3be0b23b4c9606bb.html ]下载最新的WeixinAPI。
    Don said:
    请问博主,imagePreview这个原生看图功能,能不能用啊?我小白,调不出来
  • Alien 2014-04-18 15:33:38 回复
    回复 Alien : 等我有空了继续研究研究
    Alien said:
    回复 Don : 就我目前研究的程度,是无法调用的。所有js要调用系统原生的地方,都必须保证webview给页面增加了JavascriptInterface
  • Alien 2014-04-18 15:30:09 回复
    回复 Don : 就我目前研究的程度,是无法调用的。所有js要调用系统原生的地方,都必须保证webview给页面增加了JavascriptInterface
    Don said:
    请问博主,imagePreview这个原生看图功能,能不能用啊?我小白,调不出来
  • Don 2014-04-18 15:27:46 回复
    请问博主,imagePreview这个原生看图功能,能不能用啊?我小白,调不出来
  • Alien 2014-03-25 07:12:21 回复
    回复 koala : 请参考我这篇文章,目前我正在使用中,希望能帮上你  http://www.baidufe.com/item/f07a3be0b23b4c9606bb.html
    koala said:
    大神。现在WeixinJSBridge停用了。我该怎么判断网站是否是通过微信内置浏览器访问的网站呢?
  • koala 2014-03-24 23:56:53 回复
    大神。现在WeixinJSBridge停用了。我该怎么判断网站是否是通过微信内置浏览器访问的网站呢?
  • 还有34条较早的评论...