• 传说中的WeixinJSBridge和微信rest接口


    通过关注微信好友   
    function WeiXinAddContact(wxid, cb)   
    {   
        if (typeof WeixinJSBridge == 'undefined') return false;   
            WeixinJSBridge.invoke('addContact', {   
                webtype: '1',   
                username: wxid   
            }, function(d) {   
                // 返回d.err_msg取值,d还有一个属性是err_desc   
                // add_contact:cancel 用户取消   
                // add_contact:fail 关注失败   
                // add_contact:ok 关注成功   
                // add_contact:added 已经关注   
                WeixinJSBridge.log(d.err_msg);
                cb && cb(d.err_msg);
            });   
    };   
    通过微信分享   
    function WeiXinShareBtn() {   
       if (typeof WeixinJSBridge == "undefined") {   
            alert("请先通过微信xxxx");   
        } else {   
            WeixinJSBridge.invoke('shareTimeline', {   
                "title": "xxx",   
                "link": "xxxx",   
                "desc": "关注xxx",   
                "img_url": "xxxx"   
            });   
        }   
    }   

    1. 上面的代码目前在微信内置浏览器才有效果
    2. WeiXinAddContact中的微信wxid需要微信的原始id
    例如商翼云的微信id:i3eyun,原始id:gh_b15f77615e32,
    在iphone版本的微信中使用两种id都能完成正常的关注
    但在android版本中如果使用i3eyun这个无法返回,一直停留在“正在关注。。。”,而修改成id:gh_b15f77615e32就正常了
    3. 如果用户希望用户在打开页面的时候,直接能弹出关注的对话框

    //init   
    function r(f){(typeof WeixinJSBridge == 'undefined'||(typeof WeixinJSBridge.invoke == 'undefined'))?setTimeout('r('+f+')',200):f()}   
    r(function(){   
       WeiXinAddContact("gh_b15f77615e32");   
    });

    微信内置浏览器会有WeixinJSBridge,但是需要一定的加载时间,WeixinJSBridge 有了之后 WeixinJSBridge.invoke也不一定有,所有看到r这个函数了把。。。(ps:每次打开都弹多不好意思阿,所以需要通过cookie来控 制,WeiXinAddContact回调状态来设置cookie和通过cookie判断是否要执行init的部分的r)

    //分享到朋友圈
    function weixinShareTimeline(title,desc,link,imgUrl){
            WeixinJSBridge.invoke('shareTimeline',{
                    "img_url":imgUrl,
                    //"img_width":"640",
                    //"img_height":"640",
                    "link":link,
                    "desc": desc,
                    "title":title
            });        
    }
    //发送给好友
    function weixinSendAppMessage(title,desc,link,imgUrl){
            WeixinJSBridge.invoke('sendAppMessage',{
            //"appid":appId,
            "img_url":imgUrl,
            //"img_width":"640",
            //"img_height":"640",
            "link":link,
            "desc":desc,
            "title":title
            });
    }
    //分享到腾讯微博
    function weixinShareWeibo(title,link){
            WeixinJSBridge.invoke('shareWeibo',{
                    "content":title + link,
                    "url":link
            });
    }
    //关注指定的微信号
    function weixinAddContact(name){
            WeixinJSBridge.invoke("addContact", {webtype: "1",username: name}, function(e) {
                    WeixinJSBridge.log(e.err_msg);
                    //e.err_msg:add_contact:added 已经添加
                    //e.err_msg:add_contact:cancel 取消添加
                    //e.err_msg:add_contact:ok 添加成功
                    if(e.err_msg == 'add_contact:added' || e.err_msg == 'add_contact:ok'){
                        //关注成功,或者已经关注过
                    }
            })
    }

    1. 在微信内置浏览器中可以调用weixin协议链接直接查看某个微信号的资料,例如:

    <a href="weixin://profile/gh_b15f77615e32">商翼云</a>

    这里gh_xxxxxxxx就是用户的原始ID,注意,必须使用原始ID.


    2. 分享到朋友圈:

    function ShareTofriends(img_url,link,title,desc) { 
            //在HTML页面内嵌入这一段JS代码
        if(window.WeixinJSBridge){
            if( typeof(img_url) == 'undefined' || img_url == ""){
                var img_url = "xxxx";
            }
            if( typeof(link) == 'undefined' || link == ""){
                var img_url = window.location.href;
            }
            if ( typeof(title) == 'undefined' || title == "" ){
                var title = '点开看一下吧!';
            }
            if( typeof(desc) == 'undefined' || desc == ""){
                var desc = "wendoscoo";
            }
            WeixinJSBridge.invoke('shareTimeline',{
                "img_url": img_url,
                //"img_width": "640",
                //"img_height": "640",
                "link": link,
                "desc": desc,
                "title": title
            },function(res){
                // 返回res.err_msg,取值
                // share_timeline:cancel 用户取消
                // share_timeline:fail 发送失败
                // share_timeline:ok 发送成功
                WeixinJSBridge.log(res.err_msg);
            });
            return false;
        } else{
            alert("WeixinJSBridge对象不存在!!");
        }
    };

    然后同样使用一个a标签实现分享功能,加上onclick时间调用分享的JS函数就可以了

    <a href="javascript:void(0);" onclick="ShareTOfriend('分享弹出窗的图片URL地址','分享的页面链接','分享弹出窗的标题','分享内容的描述')">分享到朋友圈</a>
  • 相关阅读:
    ubuntu查看软件安装位置
    es search
    es
    Elasticsearch 之python
    用户登陆注册,修改密码
    Django基础—— 9.ORM机制讲解
    Django基础—— 8.数据库配置
    Django基础—— 7.View函数(2)
    Django基础—— 7.View函数(1)
    Django基础—— 6、URL分发器
  • 原文地址:https://www.cnblogs.com/yjf713/p/13437016.html
Copyright © 2020-2023  润新知